Introduction: Build a Nintendo NES PC

Ah, the Nintendo Entertainment System. Brings me back a lot of good memories: Super Mario Bros., Double Dragon, Megaman. It also brings back not-so-great memories. The agony of changing cartridges, blowing until you're dizzy and still getting nothing but a flashing screen when you start the console. When you finally got the cartridge to run, it could freak out at any time from the smallest dust particle in the connectors.

Luckily, those days are gone now. NES emulators can be found for the PC. These nifty little programs are designed to run NES games as accurately as possible. All you need is the emulator itself, and a ROM for a NES game. Remember, owning a ROM without owning the original game cart might be illegal where you live.

'Now, on to the topic of the instructable':
I wanted to play NES and other oldish consoles on the NES PC, and also play Divx/DVD videos etc.
Playing NES games on your computer is fine, but I wanted more of an original feel to it. I thought I'd be able to put a PC full with hard drive and DVD drive inside of a NES case, attach some controllers to it, and hook it up to my TV.

Here's the full list of consoles my NES PC currently has installed.
- Super NES
- Sega Mega Drive / Genesis
- Sega Master System
- MAME (Arcade)
- Game Boy (Color)
- Game Boy Advance
- Sega Game Gear
- Turbo-Grafx 16 / PC-Engine
- Sony Playstation (games run from CD drive)
- Nintendo 64

The NES PC is used without mouse or keyboard! Everything is be done using the gamepads, which makes it feel more like a console (like it should!)

Step 1: Parts You'll Need

1. A NES (duh)

You're free to use a non-working one, as the only part you'll be using is the case.

2. Computer parts

You will need a motherboard and processor. Because of the tiny size of the NES case, you're not going to be able to fit a normal ATX motherboard. I used a mini-itx motherboard. They are 17cm by 17cm, so it's a great fit for the NES case. Mini-itx boards can be bought at least here. I bought a 'Jetway 1.5GHz C7D' board. It was relatively cheap and powerful enough for my needs. Mini-itx boards come with an integrated (built-in) processor, sound card and video adapter. This is great when space is a luxury you can't waste. You should make sure the processor won't generate too much heat. There's little space for air to move around in the case, so it might get a bit too hot. I learned this the hard way...
It's also important to have a tv-out connection: either S-Video (preferred) or Composite. If you have an LCD screen you might want DVI or HDMI.
The motherboard needed DDR2 memory, so I got a 1gb stick of that.

I already had an old 40gb 2.5" laptop hard drive. It won't work with a standard IDE connector, so I got a 44pin->40pin IDE adapter.

I also had a slimline DVD/CD drive from the same old laptop. It also needed a slimline -> IDE adapter to work.

You will need a PSU. There's a problem, though. ATX power sources are too big to fit inside the case. I ended up using an 80 Watt picoPSU. It's a tiny DC-DC power source. It works like a laptop's power source: you attach an external power brick that handles the AC/DC and provides the picoPSU with 12V DC power.

You will need leads to attach the power led, power switch and reset switch to your motherboard. I got them from an old computer I had lying around. I also ended up using some old case fans I had. If you've chosen a cooler motherboard/processor, you might not need extra fans. There are some very cool fanless VIA EPIA boards, but they're not very powerful performance-wise.

You won't be needing any special tools other than a Dremel or something similar. It's used for cleaning out the case bottom and cutting out the hole for the backplate. You'll also need to solder some wires for the power/reset switches.

NOTE: Take care when handling the motherboard, memory, etc. They are pretty sensitive to static discharge, so make sure you're properly grounded!

Step 2: Preparing the Case

Following the example of other NES PC builders, I got rid of all the original NES hardware except for the power led and power/reset switches. The power switch originally stays in when you press it. This can be fixed by removing a small metal part on the top part of the switch (compare the power and reset switches: the power switch has the metal part, the reset switch doesn't).

Next, I marked which plastic parts I'm going to need with a gloden marker. Basically, only the four corner stands and the plastic parts keeping the reset/power switches in place. I also marked part of the case bottom to be cut off (marked here with a red line) to make space for the hard drive that will sit under the motherboard.

Step 3: Preparing Switches and Power Led

Next, I unscrewed the switches and power led from the case and soldered the motherboard leads for them. Make sure there are no shorts that could cause problems. The PCB is nice and big, 80's style, so you shouldn't have trouble.

Step 4: Placing the Hard Drive

The hard drive will sit under the motherboard to maximize space efficiency. First I covered the hole I'd cut (see step 2) with some plastic so the hard drive bottom wouldn't be seen from the outside.

Next, I placed the hard drive (marked red in the picture) and covered the top with duct tape so as not to short-circuit the mother board, which will sit directly on top.

NOTE: I later found out the 2.5" laptop HD I had was broken, so I ended up using a regular 3.5" 160gb one. It fit just as well, but was a bit higher so the motherboard had less space vertically.

Step 5: Cutting a Hole for the Backplate

Next I placed the motherboard on top of the HD. The other end of the board sits on top of the power/reset switches. I measured where the I/O backplate would come and carefully dremeled a hole in the top and bottom halves of the case to fit the plate.

The picture shows the hole. A tad ugly, but the picture was taken before I did any sanding. It's much nicer now. The fit was alright, so I used hot glue on the bottom half to make sure the plate stayed in place.

Step 6: Placing the DVD/CD Drive

I decided to use heavy-duty duct tape to fix the optical drive to the top of the case. Slimline optical drives are very light, so the tape worked fine. I had to cut off a part of the case (check the picture) to fit the drive.

Step 7: Putting It All Together

I connected the IDE cables, the power for the HD and DVD/CD, drilled a hole for the PSU connector and squeezed the case-halves together. After some considerable violence, I managed to screw the case closed.

NOTE: I later noticed the processor was running too hot (over 70C!) so I added two extra fans. One to the top (see pic) and one where the original controllers were attached. Because of this I can't put USB connectors to the controller ports...they have to be attached to the backplate. Oh well :/

Step 8: Testing It All / Software Installation

With trembling hands I attached the power, keyboard and mouse. I then connected the tv-out to my television and pressed "Power". Success! The red power led happily turned on and I was greeted with the BIOS loading screen. I put my Windows XP installation CD in the drive and started installing.

After installing Windows, drivers, an internet browser etc., I moved all my games to the NES PC's harddrive. Next, I set up the frontend that will work as my "operating system", though not in the strict sense of the word. As soon as Windows opens, the frontend will automatically start fullscreen, hiding the Windows interface. I also went through some extra steps to make the NES PC seem less like a computer:

Using Stardocks Bootskin, I switched the default loading screen to a more Nintendo-ish picture.

My Windows booted straight to a Welcome screen, where you're supposed to select which user to log in as. I got rid of the screen by following these steps:

Start Menu -> Control Panel + select User Accounts.
Select "Change the way users log on or off"
Un-tick the "Use the Welcome screen" + apply options. Close the User Accounts window.
Start Menu -> Run and enter control userpasswords2
Un-tick the "User must enter a username and password to use this computer"
Enter the password for the person you want to login as.

Next, I removed the "Loading settings" message that appears when Windoze is starting up:

Start Menu ->Run and enter regedit
Navigate to entry: HKEY_LOCAL_MACHINE> Software> Microsoft> Windows> CurrentVersion> Policies> System
If there is an entry for "DisableStatusMessages" set it to 1 .
If there is no entry, right-mouse click the System word, and select New->DWORD value, and enter DisableStatusMessages, right-mouse to edit the value of it, and enter 1

To turn off the obnoxious pop-up info balloons in the right bottom corner of the screen:

Start Menu -> Run and enter regedit
Navigate to entry: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Advanced
If there is an entry for "EnableBalloonTips" set it to the decimal 0 (the digit zero)
If there is no entry, right-mouse click the "Advanced" word, and select New->DWORD value, and enter "EnableBalloonTips", right-mouse to edit the value of it, and enter the decimal 0 (the digit zero).

Lastly, and most importantly, I added the frontend to the Startup -folder in the Start Menu. That way, when Windows is started, the frontend is automatically launched!

Step 9: Current Use

The NES PC is currently attached to my living room TV. I use two Dual Shock (Playstation) controllers via USB adapter. They work great. I have an emulator frontend that works entirely with the gamepads, so I don't need to have a keyboard or mouse attached to the NES PC at all. The frontend lets me choose games and play them, watch Divx/DVD video, listen to internet radio etc.

The following consoles currently work perfectly on the NES PC:
- Super NES
- Sega Mega Drive / Genesis
- Sega Master System
- MAME (Arcade)
- Game Boy (Color)
- Game Boy Advance
- Sega Game Gear
- Turbo-Grafx 16 / PC-Engine
- Sony Playstation (not 2)

UPDATE: Nintendo 64
I've added another console for the NES PC: The Nintendo 64. It is by far the most resource-intensive console to emulate, so I tested a few games to get a better idea of how playable it was. I used the Project64 emulator with 640x480 resolution and 16-bit colour depth. No anti-aliasing or texture effects.

Super Mario 64: CPU usage averaged around 80%, with peaks at 90-95%. The video was perfectly smooth and gameplay was responsive. Occasionally, with a lot happening on the screen, the audio would clip for a moment resulting in a faint clicking noise. All in all, the game is perfectly playable!

Star Fox 64: CPU usage was constantly >= 90%. The game menus had occasionally jerky video and some audio stutering. Gameplay was near perfect though, with no in-game video problems and occasional audio stuttering. Not a perfect score, but very playable.

GoldenEye 007: This was obviously the hardest game to pull off. CPU usage was at or near 100% all the time. The video and audio were both jerky/stuttering in both the menus and in-game. The framerate couldn't stay at acceptable levels, which resulted in poor responsiveness. I won't call it unplayable, but the jerkiness makes it a bad choice for my current setup.

Conclusion: Most Nintendo 64 games will be very playable if not perfect, but a lot of the more resource-intensive ones will not be very smooth. All in all, I'm positively surprised by the results and happy to add another quality console to the list :)

I hope you enjoyed my Instructable.

Step 10: Final Form

As requested, here's a few pics of how the NES PC looks at the moment.
The Instructables Book Contest

Participated in the
The Instructables Book Contest