Mini-ITX Emulator Box in an NES
Well, I wasn't going to post this until the entire system was done, but it's been one hangup after another, and I *think* I'm on the last problem to sort out now, as the DVD drive is currently on RMA with NCIX. I really hope that's the last problem! Here's my build log for my NES PC:
This project started when I was suddenly very interested in case mods. I initially thought of doing a Fallout 3 or a Diablo III case mod, but for some reason the idea of “hidden” systems really appealed to me, and the idea of an emulator box that was actually built inside an NES was most appealing of all.
Now, I realize that this has been done before; in fact, I used quite a number of online write-ups on NES computers to help me decide how exactly I was going to put the project together….then I ended up scrapping almost every idea I had.
I started, of course, with an old NES. I took out all of the guts, and used my dremel to cut down most of the interior screw posts, except those that hold the case together. I also cut out the inside part of each “L” shaped slot for the topside ventilation, which I hoped would improve airflow in a SFF case with no fans. Lastly, I cut out the back panel, which originally housed the channel selector, and AC adapter input.
My parts of choice were: the Atom based 330 DC, with integrated GMA 950 GPU, a 1GB stick of Crucial RAM, an IDE-based DVD-ROM/CD-RW drive I bought used, and a 90W PicoPSU/Adapter kit.
In addition, I had a trusty new Mastercraft “rotary tool”—which I will call a Dremel for the same reason I call “hygienic tissues” Kleenex; I’m lazy. I also had a 60GB 2.5” SATA hard drive, which I took out of my PS3 when I put in a 320GB Scorpio drive.
My modifications began with soldering direct contact points to the power and reset buttons, as well as the LED. The other end of the wires all got motherboard connectors, for obvious reasons. I also pulled apart the power button and deliberately broke the piece which holds the button in; the motherboard didn’t like it, and I needed to make it into a contact switch instead of a constant connection switch.
Now, I don’t have many pictures from the in-between process, primarily because it was full of epic failure. I had originally intended to sit the motherboard just above the bottom of the NES case. However, I decided to purchase two Retrozone NES Controller to USB adaptors and promptly modded them to fit in the front of the case. Unfortunately, they extended into the case NOTABLY farther than the original controller connectors, which meant that they interfered with the motherboard placement….As it turned out, so did the NES’s power and reset buttons. A change was in order.
I ended up shaving off the tops of the connectors as much as possible with my dremel, in order to allow the motherboard to sit as low as it possibly could, but still allow for the controller adapters. This, in turn, made the motherboard sit high enough that the RAM and PSU interfered with the DVD drive….and my head exploded.
At the same time, I was running into another problem with the DVD-ROM drive; it apparently had a proprietary connection, which didn’t fit the standard adapters. I found this out after purchasing two DIFFERENT adapters…mostly because I was impatient. In the end, I decided that I would just buy a Slimline SATA DVD-RW drive from NCIX, b/c it was on special.
Imagine my anger, when I realized (I’m not overly familiar with laptop parts, obviously) that while laptop SATA hard drives use standard SATA connections, Slimline SATA optical drives DO NOT. I promptly ordered the only adapter that NCIX had that seemed to fit the bill.
Just to add insult to injury, the new adapter had male SATA connectors….just like the drive. The final adapter is in the mail from Amazon.ca, as NCIX didn’t have any.
Meanwhile, I needed a way to attach the DVD drive to the inner lid of the NES, but a way that wouldn’t be obvious and mar the look of the case. The solution was a bracket, cut from the original NES innards, and krazy glued to the lid.
This, of course, only secured the rear of the drive, but the left side (from front view) was held by the case plastic, which I cut specifically to allow for the drive, and the right side JUST touched the heatsink on the motherboard, which gave it something to lean on (though I was still unsure how the whole thing would fare heat-wise at that point).
At the same time I decided that I was looking at the motherboard situation all wrong; if I had to put the motherboard higher, that gave me the opportunity to use the space beneath it, provided I could come up with a way to insure that nothing moved and shorted out. I mounted a 2.5” to 3.5” HD bay adapter to the bottom of the NES, glued a USB connection onto the bottom to feed the controller adapters (yes, I realize that I could have just spliced on a motherboard header, but this way things can come apart easier if anything dies on me), and put in an SPDIF bracket on the back to allow for digital sound output.
You can also see the two black legs in the top left and bottom right of the case, which function as the motherboard standoffs. They are, oddly enough, pieces of a DVD spindle center hub, which I cut to length and bored, before gluing in a brass standoff. The other two mobo mounts have unfastened legs; the one for the top right sits on the hard drive, and the bottom left sits on the top of the reset button’s blue case.
In order to solve the interference problem with the DVD drive, I bought two things: some Kingston Value RAM, and a 20 to 24 pin ATX adapter. Kingston has apparently begun making their value line low profile to save costs, which means it’s just over half the height of a regular module—suddenly my DVD drive cleared it. The ATX adapter (I could just have easily used an extension, but the pico was 20 pin and the mobo 24, so I thought “why not?”) allowed me to route the PSU underneath the motherboard, and the wires on the adapter were pliable enough to bend them down out of the way; problem solved!
Of course, this also necessitated two things in my mind: some basic airflow for the PSU (though most of the heat is apparently in the adapter, as it does the AC to DC conversion) and a way to secure it so that it didn’t short out on the bottom of the motherboard. Perforations via drillbit, and hot glue to the rescue! I glued not the PSU, but the 20pin side of the adapter to the bottom of the case and put holes in a discreet part of the case bottom. While I was at it, I also hot-glued both the controller adapters, and the motherboard standoffs, to ensure they stayed put (it occurs to me here that I didn’t chronicle the epic battle to make the controller adapters fit in the standard holes….but maybe I’ll just leave that for another day).
Finally, the motherboard was put in, and the backplate glued into the case (obviously I cut the hole somewhere in this whole mess, but I’m not sure when), and the only part I was left waiting for was the slimline SATA to normal SATA adapter. When Amazon finally dropped it off, my woes should have been over…but they weren’t. First, I found that I needed to trim the SATA motherboard connector on the adapter because it was hitting the DVD drive. Not a big deal, right? And it wasn’t…right up until I managed to sink the scalpel I was using for the job into my thumb. Nice clean cut…and a LOT of blood.
Additionally, though I had used a full-sized IDE DVD drive at one point for installations, apparently having the DVD drive hooked up caused regular rebooting, and the DVD drive to do nothing but click continually, as though it couldn’t spin up.
As the PicoPSU was capable of 90W, but only came with a 60W adapter, I decided the best course of action was to upgrade the adapter from the 5A to a 6.6A (~80W). Unfortunately, I could only find one in the U.S., which meant yet another wait, and some (hopefully) minor brokerage fees.
Software Writeup and Final Shots
While I waited, I decided to get the software side of things handled. I chose to go with Linux for the box, as the eventual sale of it meant that I would have had to buy a legitimate copy of Windows for it—another $100+ down the drain. As I have never before worked with Linux, I decided that Ubuntu was the way to go (though I hear Linux Mint is also excellent, and I may try it soon in the future). The install went fine, and I then went about trying to learn how to install software.
Software installation made me glad that I had taken a couple of C++ based classes in university, and spent so much time fiddling around with MSDOS as a kid. The syntax was different, but I more or less understood the ideas behind everything. The only thing I missed was the inclusion of additional software repositories, which meant that I did most of the beginning stuff the hard way before I smartened up and did some online reading.
The next kick in the ass came when I found out that the GMA 950, the GPU within my 945GC chipset, has some MAJOR OpenGL issues with Linux, which meant that my ZSNES emulator would only run games at 640X480, and STILL dropped frames. I was not impressed. After much detective work, I found http://intellinuxgraphics.org and downloaded the Intel 2009Q1 graphics package. While it doesn’t claim to support the GC chipset, I decided to give it a go, installing both the 2D driver, and MESA for 3D. Because I couldn’t get the latest drivers via a repository (and only the most recent contained the OpenGL bugfix), I had to install everything manually, and individually source the dependencies which each stage required. A LONG night later, the problem was solved! ZSNES happily handled my ROMs in any resolution, and with all the “pretty” factors turned on.
Unfortunately, the next day when I rebooted, the problem was back again, and the same solution didn’t fix anything. Finally, thinking I might just have to swap to a WinXP install, I made a last ditch effort and tried Ubuntu 8.04…which worked like a charm. No problems as yet.
In my entertainment centre...
For those of you with sharp eyes, you'll note how hot the system was running. I decided a couple of fans were in order, and so I installed a mini-kaze 40mm exhausting in the rear, and a Delta 60mm on the top as intake--which blows right onto the passive motherboard heatsink, on the bright side.
There are only two snags left; first, the new power adapter fixed nothing, which prompted me to test the DVD drive with another system...and it didn't work. RMA in progress. The other snag is a minor software tweak I'm working on to have the system recognize the 4 different gamepads I have attached and assign them the same input slot EVERY BOOT, so that the emulators can retain the settings they need for buttons. I'm oh, so close. Anyway, here are the final pictures:
The last pic is the air intake on the top of the NES--if you look closely you should be able to see the fan underneath. Unforunately, the original openings were 'L' shaped, which made for awful, restricted airflow, so I lopped the bottom part off of each "L." It looks awfully ugly this close up.
Final thoughts, thanks, and a question...
If I had the project to do again, I think I might do things a little differently. For starters, though I like the Atom board, I was disappointed that it didn’t have either DVI or HDMI. I’m not sure what else I could have chosen that would fit, but I would look a bit harder. I also didn’t much like the whole controller adapter process, as they were expensive, and, ultimately, not overly useful. Sure, they work OK, but if you’re going to be playing not only NES games on your Emubox, but SNES, Genesis, or N64, you need something with more buttons than a standard NES controller….Now, I had that handled with USB-based controllers, but then the NES controllers are really only for the look…and between the controllers, and the adapters, I probably paid almost $70, shipping in. The alternative would have been manually wiring them to a serial connection, but the mobo didn’t have a serial port…so that wasn’t much help.
In addition, I would somehow magically be rich. That’s right, magically rich. Not only would that make getting the parts easier, but it would let me hang onto the final product, which I don’t think is in the cards this go around; I have a wedding coming up in July, no job as yet (I’m just finishing up my M.A.), I still need to pay rent and eat, and I'm trying to pick up a 2nd 8800GT on the cheap to SLI, so away she goes, as soon as I get the DVD drive back from RMA and put it in. That, unfortunately, means coming up with some ballpark figure for what this beast is worth—any input would be welcome. I’ll give a note on costs at the end of this, though, of course, it can’t account for the immense amount of time spent on this.
Well, I hope this has been entertaining, at least. Sorry about the long-winded bits in between the pictures, but I had some ‘splaining to do. Thanks to all the HWC members who patiently answered my questions while I was building, particularly begolas, jay51, and ipaine for my questions on the Atom and emulators, mklym for advice on slimline ide adapters, and cmetaphor and hossdaddy for their thoughts on RAM. Also, thanks to anyone who actually read all the way through this.
-NES console, two controllers: $25
-ATX adapter - $4
-Intel Boxd945gclf2 (Atom 330 board, CPU + GPU) - $100
-PSU/Adapter - $61
-2.5” to 3.5” bay adapter and SATA cables - $7
-Slimline SATA DVD-RW - $54
-Retrozone adapters - $70
-SPDIF bracket - $2
-Fans - $10
-Two other gamepads for playing all games other than NES, TG16, and Gameboy - $25
-Wireless Keyboard and Mouse combo - $25
-New power adapter - $60 (incl. UPS horrific brokerage fees) :censored:
-Ballpark figure for 60GB 2.5" HD (used) - $40
Total cost (not including wrong adapters/drive/RAM, etc): ~$500
As well, of course, there are the cables, glue, and an almost ridiculous amount of time, given how simple the project *seems*.
Any thoughts are appreciated!
Nice :) Continue
Thank you! That's all of it now, I think.
That's an awesome idea...I might have to try that some time
LOL at the Getting Started Windows 98 picture.
Really nice job, must have a little pinch to the heart when you striped the NES eh?
Thanks vulcan500rider.... now I have wood.
And another idea. Just what I need.... :angry2::haha:
|All times are GMT -7. The time now is 06:49 AM.|