Introduction: Retro All-In-One Gaming Console
First Prize in the
Hack It! Contest
Do you love your NES? How about your SNES, Gameboy, Sega Genesis, or the N64?
Why not combine all of these systems into one fluid system all encased in the beloved box known as the Nintendo Entertainment System? Well, I am going to show you how to combine all of your favorite games into one console, while still maintaining the classic look of the NES. The final result is a customized M.A.M.E. machine encased in a NES console case, with some special modifications to create the console experience that is simple enough for a child to operate, but comprehensive enough to include virually any system that can be emulated.
Step 1: Gather Materials
Below is a list of items you will need in order to complete the project. Most can be picked up on Amazon.com or Newegg.com, with a few exceptions.
1x Nintendo Entertainment System (Doesn't need to function, just a nice case will do) ($20 @ Ebay)
1x ZOTAC IONITX-T-U Intel Atom D525 (1.8GHz, Dual-Core) Intel NM10 Mini ITX Motherboard/CPU Combo ($200 @ NewEgg)
1x Mushkin Enhanced Callisto Deluxe MKNSSDCL40GB-DX 2.5" 40GB SATA II MLC Internal Solid State Drive (SSD) ($80 @ NewEgg)
2x Kingston ValueRAM 2GB 204-Pin DDR3 SO-DIMM DDR3 1333 (PC3 10600) Laptop Memory Model KVR1333D3S9/2G ($32 @ NewEgg)
2x NES/SNES RetroKit ($17 @ RetroUSB)
1x Computer Case Power Button and Reset Button (Salvaged off Old PC)
2x Nes Controllers (Ebay)
2x SNES Controllers (Ebay)
2x NES Controller Extention Cords (Amazon)
2x SNES Controller Extention Cords (Amazon)
1x HDMI Cable (Amazon)
1x Sheet of 1/8" Plexiglass (Menards)
1x Small sheet of metal roughly 3"x 6" (Menards)
4x Nylon Spacers (Menards)
4x Small bolts with Nuts to affix motherboard to plexiglass (Salvaged from odd items)
1x Zip Tie (Menards)
1x Self powered USB Hub ($5)
1x Generic USB Keyboard ($5)
1x 4-port USB A Female Low Profile Slot Plate Adapter (Salvaged from old computer)
2x Momentary Push Buttons (Salvaged)
1x CPU Fan (Salvaged)
1x Copy of Windows XP (I used 32-bit, but 64-bit would be prefered)
- Dremel Cutting Tool (or another cutting tool that you have available)
- Hot Glue Gun with Glue
- Soldering Iron & Solder
- A mouse and another Keyboard for settings
- External CD-Drive (to setup Windows)
- USB Thumb Drive (to transfer files to the system)
- Internet Access
- Windows XP (Also listed in Materials List)
- Hyperspin 1.0
- EmuMovies Videos
- Various Emulators
- Game Images (Like Homebrew Games)
- (Optional) A Program to assist you shell Hyperspin
Step 2: Clean Out the NES Case
Ok so first thing first. Lets make an NES PC. Hatsuli's NES PC was of great help during the planning of this project. However, we are specializing this NES PC to be a console, while hiding the fact as much as possible that it is a PC. Lets start with the NES.
First take apart the NES by taking out the bottom screws in the case. Continue to disassemble it until you have all the "guts" of the system out, leaving only the controller ports, which we can simply disconnect from the NES hardware. Remove the controller ports and put them aside for later use. We will also use the mounting bracket and buttons from the power button assembly. So save these as well. Now that your case is gutted, simply use a dremel and remove all the posts in the case except for the four corner posts and the two posts that hold up the power button assembly.
This should leave us with a fairly open case in which to build inside.
Step 3: Put in the Motherboard
Now theZotac ION ITX board is a very full featured motherboard for this project. It has everything from Dual Antenna Wi-Fi, HDMI-out, USB 3.0 Ports, a built in CPU, and is claimed to be fanless (more on this part later). However the most important aspect is that it has a external power supply, like a laptop. This gives us the room to beef up performance, reduce heat, and reduce the space needed in the case. When working with any of the electronics in the system make sure you are grounded by touching some metal and never work while on carpet as it can generate a static charge and risk messing up the boards.
Now instead of placing the mother board into the case and screwing it to the case itself, lets make a platform for it out of plexiglass. The primary reason for this is that I wanted the board to "float" and have as much air around the board as possible. So get out that plexiglass, measure the size of the motherboard, and cut out a piece of plexi that will cover the entire size of the motherboard's bottom. I used a radial arm saw to cut this out and was shocked that it didn't shatter it and cut it fairly well, just keep on the protective film on the plexi until all modifications to it are complete.
Now simply lay the board on top of the plexi, and using a marker, simply mark the holes where the motherboard will be bolted into it. Use your drill and make the mounting holes in the plexiglass.
Ok, now remember those nylon spacers from the material list? These are what separate the motherboard from the plexiglass to create that air flow for all around the board. So, lets mount the board to the plexi and lay it in place. This gives us an idea of where the motherboard will be in relation to the back panel that we have to cut out.
Step 4: Cutting the Back Panel
So the back panel is the toughest area to keep clean in my opinion.
NOTE: **ReInstall the Controller Ports prior to positioning the motherboard or you may not have room for the port afterwards.
Once you find the farthest corner the Motherboard fits, mark where some of the connections on the plastic backing. Then use the motherboard's metal faceplate to identify the exact location you will need to cut to install the plate cleanly. Draw in the area to cut out of the bottom of the NES case, take your dremel and cut away. Then you can install the face place in the lower half and use that as your guide to finish the top half of the case. Check occassionally that everything fits properly (the power button assembly will not fit if its still installed).
Once you finally get it to fit, shaving off edges, filing down corners, etc... then congratulations. Install the motherboard into the back of the bottom of the NES case, and mark the edges of the plexi inside the case so you could place it without the motherboard on the plexi. And yes, you guessed it, take the motherboard off the plexi and set it aside, being careful of that static electricity again.
Lay down the glass and drill 2 more holes through the glass at the edges of the NES expansion port. This will provide us a way to anchor the board to the case with a zip-tie, and allow us to remove the board and plexi without the bolts again. Once drilled, run your zip tie through the case and plexi and back around the bottom loosely. It has to be loosely because you still have to mount the motherboard to the plexi AFTER the zip-tie is installed. If it is tight, good luck getting that motherboard secure. But, but once the board is secure on the plexi, fasten that zip-tie and your motherboard should be securely fastened to your case.
Step 5: Installing Other Computer Components
Ok at this point you have your NES PC, but it lacks a few things. First, install the memory according the the instructions given on the packaging or motherboard manual. Second, you need a hard-drive. However, no way to mount it yet.
Grab that piece of sheet metal from that long material list. Not much to this, and it doesn't have to look pretty, but you want to create a mounting bay for the 2.5" Solid State Harddrive we have. Just use a couple clamps and some good old fashion elbow grease and bend it to leave an area for that hard drive. Make sure your drive will fit in that "mounting bay" you just created and then mark where the holes you need to drill to be able to install the screws for the harddrive bay, then drill them, put the drive back in and screw the drive into your new mounting bay with harddrive mounting screws from an old computer.
Simply mount the new mounting bay on the side of the PC where the old video and audio out ports were. I used superglue and it works great. Run your cables from the drive to the motherboard and you now have a functioning harddrive mounted.
Now, you also need a few more things, 2 working NES ports, and a working power button. Lets go there next.
Step 6: Creating a Power Button
Now the current NES power button assembly is too large. So take the pretty button face off of the power and reset switches, remove the circuit board portion, and all we keep is the LED "cone", the LED itself, the 2 button faces, and the metal mounting plate below.
What we are going to do is simply mangle the metal of the mounting plate in order to mount our old PC power and reset buttons we salvaged. The switches take some effort, but with the right amount of "persuasion" the mounting plate is at the correct distance from the button face that our switches will act like a NES reset button, pushing in, poping back out, and then a little hot glue to hold it in place provides a momentary button for the PC in both power and reset (except the reset we dont plug in, as it is used for another purpose). You can now plug the power button into the motherboard.
However, this wouldn't be complete without the red LED right? Well you will notice that the LED "cone" that projects the solid red is too long. So with a little trimming from the dremel the LED cone is shorter and the LED can be closer to the front of the system. Now if your old power switch had a red LED like mine did you can simply move the red LED from the PC to the NES, replacing that LED and then plug it into the motherboard's System Power LED connection. If not, all you have to do is run wires from the motherboard to the LED to complete the circuit (but please find a connector for it unless your very confident about soldering onto a motherboard).
Thats all there is it to the power button. Seems simple but getting it just right took me about 4 hours of fiddling with it, so don't get discouraged.
Step 7: Creating Working NES Ports
For the NES Ports we need our RetroKit from RetroUSB. These are actually designed for placement inside of a NES Controller, however, i feel bad enough about ripping about a NES Console, i will keep my controllers unmodified. So what we do here is simply pull up the wiring diagram of the RetroKit from the manufacter's website. Now break out that soldering iron.
First thing we want to do is remove the USB cable from the chips. It comes pre-soldered and we just want the chips for this first part. Once you have the chips you will need to solder the NES port wires onto chip per the manufacture's instructions (they also have a nice video for those new to soldering like me). There will be extra wires cause not all the wires are actually used for this.
Note: If you noticed there are 2 diagrams, one for NES and one for SNES controllers that is very important for our accessory creation later on. That is how we can use a SNES controller with our original NES ports.
Now that the chip is installed into the ports, we still need to connect it to our PC. Now I actually simply took the wire from the 4-port USB header and wired both chips into this so that both chips would be connected via the motherboard. However with a future expansion I added I had to reverse that so I will give you a "lesson learned" way to install these chips.
Simply shorten the USB cords that you removed from the chips to about 6" or so and re-attach them to the chips. Now cut the USB header in half so you have (2x) 2-usb headers. Install one into the motherboard and superglue (or hotglue) it to the case below the motherboard if possible. You now how 2 internal usb ports, one of the chips can be plugged into this, the other you plug a USB hub into and plug the other controller into the hub.
Now you have 2 working NES ports in the front of your system. Plus, one of the best aspects of this is that the NES controllers can be unplugged and plugged back in while the system is still running. So if you need to swap between SNES and NES controllers you can do so without any problems.
Step 8: Creating the Front Panel
One of the benefits of emulating vs. the real system is the save state function. We will want to create a front panel to be able to access this feature without a keyboard, also we need a "Quit Game" button, and a few extra front USB ports for specialized controllers (Such as the N64 Controller).
To accomplish this we simply cut a piece of plexi-glass out to the internal dimensions of the front door. I simply made a rectagle that slides in perpendicular to the top of the case and leaves a gap so that air can escape via the front door because it won't be air tight. Once the piece of plexi is cut, we use the other half of the USB header, mark the USB port locations on the plexi, as well as mark the location of our two momentary buttons to be placed, then drill/dremel/sand/carve out those holes on the plexi. I used a lot of drilling and sanding to get the holes as close to the desired size as need be. Then I simply installed the USB header and the two buttons into the glass, and mounted it inside the case with hot glue.
In order to get these usb ports to work you can simply either splice in male USB ports with the wires, or solder them into the USB hub, but I recommend the splice as you can then unplug the top of the case from the lower half of the case.
The buttons take a little more work to get them to work. You will need that generic USB keyboard. Take it apart, and find out what two terminals on the circuitboard need to be activated to produce the ESC, F5, and F8 keys. To best understand how to do that, search the Instructables website on how to hack a USB keyboard. Its not difficult, but they will explain it much better than I will be able to.
Now simply solder the reset button to the ESC terminals, and your two momentary buttons on the panel to the F5 and F8 terminals respectively. You will now have a way to quit your games, save and load a state, and have the ability to plug in more USB controllers into the front of the console.
The keyboard part took me 2 keyboards and about 3 hours to get right. I kept pulling off the contacts. So i ended up using hot glue to prevent the solder points from having any pressure.
Step 9: Testing Hardware and Revisions
If you have gotten here you now can reassemble the system and turn it on, however without any operating system so it will just boot up your BIOS, but it should work. One thing you would notice is that it is completely silent. No fans or harddrive noise. However, after testing near the end it turned out that it got to around 90 degrees Celcius inside, and I didn't feel comfortable with that high of a heat inside my new game system.
To address this problem I simply cut out a hole in the top, and glued in a CPU fan and plugged it into the CPU fan port on the motherboard. While it took away from the look when examining it, its not noticable unless you are looking at it from above. Anyone looking to recreate this I would recommend a side mounted fan simply. However having the slimline CPU fan mounted directly over the "Fanless" heatsink that this motherboard has installed has a solid 30 degrees Celcius temp. So it was a trade off, but I bet a side mounted fan would do equally well, it just takes away from that silent console appeal.
So with that the only physical modification is that of accessory modification.
Step 10: Accessory: SNES Adapter
In order to play a variety of systems, you generally need more than the standard NES controller. Without having to make everything a USB controller, lets add the ability to use a SNES controller from your new NES port. This is easy and requires little skill and the only thing you modify is some generic NES and SNES extension cords.
First take one SNES controller extension cord and remove the end that would plug into the console (male end), but keep about 6" of wire near the end incase you ever need it again. Next, cut the NES controller extension port cord about 6" from the part you would plug another controller in (female end).
Now you will splice the cables together, except the yellow and red wires will be crossed. So the red NES connects to the yellow SNES and vice versa. Once you spiced the cables together and used some electrical tape (or that nice heat shrinking wrap for splicing) you now have a cord that has a female SNES port and a male NES port, and it will act as your adapter for using an unmodified SNES controller on your nes ports. As a bonus, this cable also works in the original NES system if you like the SNES controller better.
NOTE: One side note, on some of the cheeper generic extension cords they use different colored wires. So if this is the case all you have to do is get out your multimeter, find a nes and snes controller port diagram and trace your wires connecting all the wire functions to the same function on the other controller port. You won't cross over any color wires, you simply hook up your power to power, clock to clock, etc... It is more of a time suck than hard to do. Just know how to trace your wires in the cord from your multimeter manual and compare snes and nes controller port diagrams.
With this your hardware modifications are complete, now onto software.
Step 11: Setting Up the Software
One of the most time consuming, aggrivating, and rewarding parts of the project is the software setup. Due to the amount of detail it could take to explain this section I will not do it in too much detail. Some parts you just need to experiment with and research for your own needs.
Starting off install windows XP via an external cd-drive. Install as much as you want with the custom install, don't go too skimpy on installing drivers and such as you may need them. You also will want to install service pack 3 with this. I bet this would work with any version of windows xp and later, but I am not sure.
After windows is installed you will want to transfer all your emulators and any game images onto the system and organize them as needed. Additionally you will want to install xpadder to help fix some bugs with using your NES controller with the front end.
Another helpful tool is Alcohol 120%, which if you wanted to run a cd based console, you could use to load images of the cd rather than attach an external drive and have to swap drives. The hyperspin program has modules that will swap the disk images for you.
Finally, you want to install the Hyperspin 1.0 with updates. This is a fantasic free front end for M.A.M.E. machines and helps to hide the whole windows environment with a little tweaking. The job of the front end is to allow us to select a game, start it up, and then after we quit the game (remember the reset button) goes back to the menu to select other games. In order to set up Hyperspin you can check out the programmer's website forums to tweaking it to your needs, how to use the modules, etc... It will also direct you to EmuMovies that allows you to preview every game with a video and artwork rather than just text.
You will need to take some time going over the settings for the front end and each emulator to create a smooth interface. After you test hyperspin you may notice that the nes controller doesn't work perfectly (some functions are not working) this is where xpadder comes in. It allows you to map your controller button to a different keyboard key and substitute that for what isn't working. Seems to work fairly well and you can have the frontend auto load it on startup.
One of the most visually impressive aspects to this modification is after it is all setup and runs fine. Then you turn the frontend executable file into the shell that boots up. There are a lot of programs that will allow you to change the shell of the computer from explorer.exe (normal desktop that we see) to a custom program. You can also get programs that will change the bootup splash screen, mouse cursors, etc... Basically when you start the system you shouldn't see anything that reminds us of windows. If you do, then google how to remove that feature. Soon you will be able to run your new system without it showing any signs that it is a computer, unless you open it. You can see most of this on the video on step 12.
Step 12: Your New System
Currently I have systems from NES, SNES, Genesis, Sega CD, Gameboy, N64, and Sega Saturn all sitting on one system. The only limit I found so far is my hard drive space, which 40gb is not nearly enough. Everything is run from the NES console or the controller. I do have a wireless keyboard I use for not having to walk up and press the reset, but thats my secret for when I am lazy.
Finally, there are some ideas that I did try and I leave up to the instructable community to build upon if so challenged.
- I did try the wireless ps3 controller setup, however the controller ID upon load was unreliable with the settings of the emulators and front end, as well as having to load motion-in-joy. The motion-in-joy actually killed it as I did not want to have to go in and setup the controller in a windows environment every time I turned the system on.
- I do wish there was a better cooling method than a fan to keep it cool, in order to keep the silent appeal to the project, but I have yet to find a solution.
- One of the most disappointing aspects of the project was the inability to find a motherboard that had the yellow video out. While I appreciate the HDMI out and the ability to use XBMC or Netflix to stream (which I don't because currently but have prior to the specialization of the system), it would be truely nice to run the system withouth cutting out a back panel and keeping the original ports intact.
We have a be nice policy.
Please be positive and constructive.