Main Logo
Main
Hardware
Software
Misc
Search

Table of Contents
<<  Introduction   Hardware I - The NES Interface   Hardware II - Adapter Design   Firmware   Assembly   FAQ   Orders   Conclusion   >>

 

“This site is awesome! How can I help support you?”
Donate! I don't really make money selling anything. As you can see from the part cost, I pay myself a meager salary to assemble the part for you. Besides, I am a poor college student that only eats Top Ramen. Ok, that's my shameless plug.

“Why is the FAQ longer than your article?”
Because people ask all kinds of questions! I typically get at least 5 emails daily with questions. I tried to put all of the questions in the FAQ and answer them. So yes, most of these questions are actual questions that people have asked me.

”How long did this project take you?”
Once I had the idea, the hardware, firmware and researching took about 8 hours. However, maintaining the code, answering emails, and writing this webpage took FAR in excess of that. I guess my engineering skills are much better than my other skills. And don't forget, Napoleon Dynamite said it best “Girls like guys with skills.”

“I work for company ZZZ and I would like to hire you”
Awesome! My resume' is posted on the site. Make me an offer and pull me away from Manfrod (Stanford, however I have yet to see any females on campus so I have appropriately renamed the university).

“I don't have any electronics experience but this is sick! How can I get one of these?”
Look at the order page. If you don't have a soldering iron or any electronics experience, I recommend getting the entire assembled controller. All you do is plug it in!

”I have some electronics experience, but I don't understand the schematic or the code”
Cool. If you can solder then just get an assembled adapter and put it in a controller or buy an assembled controller. Again, on the order page.

“I can solder like Mr. Bonds denies steroid use! I even have all the parts to make (or have already made) a PIC programmer; however, I don't have the compiler to compile the code.”
All you need to do then is program the PIC with the correct HEX file that is in the download section.

“I'm the shit! I can solder and program and basically do it all. Can I just get a PCB?”
Yep. Check the orders page.

“Can I make (or buy cheaply) a PIC programmer?”
Yes. The JDM programmer is very cheap to make, I think somewhere around 5$. Or you can buy one; a lot of places sell them. Try Sparkfun Electronics or google.

“My PIC programmer doesn't work! I thought you said I could make this”
I have no idea what you did wrong, the JDM programmer works fine. One thing to beware of though, some laptops (and computers) don't have full +/-12V swings as the RS232 specs require, they get away with +/-5V and the JDM won't work well in these conditions.

”What emulators do these controllers work with?”
JNES and VirtualNES are the two that I use. I am sure it will work with many more. The emulator needs to support DirectX Input. For a full list of emulators, check out http://www.zophar.net/nes.html

“Where do I get ROM's?”
I have no idea…. All the ROM's I own are legal but I hear that you can download ROM's by searching on google….

“What is Mouse Mode and how do I use it?”
Mouse mode is a feature that I added to allow you to use the NES controller as a mouse. You can only use it as one thing at a time obviously! However, sometimes it's nice for people with PVR or HTPCs to have the mouse so that they can start the emulator. To enter “Mouse Mode” hold down A-B-Start-Select. Release and then use the controller as a mouse. Hold down the same key combination to get out of “Mouse Mode.”

“Hey dude! My game has a cheat code where I hold down XXX YYY ZZZ and the controller is entering Mouse Mode!”
Well you have two options, use the firmware without “Mouse Mode” or if you have the compiler and programmer, modify the enable sequence. Look at the code to see what I mean.

“I bought a controller before April 2006 from you and mine doesn't have “Mouse Mode!” Can I add it?”
Sure! Just reprogram with the latest HEX code from the downloads section. It's probably a good idea to do this even if you don't want “Mouse Mode” because I made some changes that should help to resolve some issues that people were having with the old version.

“I'm elite and I modified your code but now it doesn't work! Can you fix it?”
Nope!

”Can I use your controller code/schematics/PCB's and sell them?”
Nope! I published this stuff so that you could stick it to the man **cough** retrousb/retrozone **cough** not be the man! Any modification or use the code must be approved by my written consent.

“Hey man, this is supposed to be a project for amateur hobbyists, why did you use all surface mount components?”
Well, if you try and put a through-hole (DIP) microcontroller on a PCB board, it simply won't fit inside of the controller. Thus, in order to make the mod fit inside the controller without modifying the existing board or controller case, I had to use all surface mount components. They are larger surface mount components and fairly easy to solder. I don't use a magnifying lens or anything other than my Weller soldering iron and a pair of tweezers.

“I don't want to put this in the controller, I want to put it outside and have the original NES controllers plug into it. What do I do?”
Awesome. I wanted to do this initially as well; however, I was unable to find the connectors for the NES. Sure, you can salvage them from old NES consoles, but I don't have a bunch of consoles lying around. Anyway, the procedure is the same except you need to do one additional step since the controller will not always be NES controller won't always be connected. You need to solder a 100k resistor (no, it doesn't have to be 100k, but it needs to be large) from the white wire (VCC) to the yellow wire (Data). This pull-up resistor will keep the input high if a controller is not attached. If you don't do this, the buttons will always read ALL on, which can be a tad bit annoying.

“Are the controllers that you sell clean or new?”
Umm... Well I do clean them, but they are probably 15 years old, so some do have scratches or minor abrasions. If you want a pristine controller then build it yourself, just buy the adapter, or send in a controller that you want the adapter installed into.

“Will the adapter work with <insert some other NES component here>?”
The short answer is no, but in reality yes. The firmware needs to be changed for each of the different NES components. If you don't see the NES component in the downloads section, odds are that I haven't written the firmware for it yet.

“Have you made the gun yet?!”
Yes. But I haven't written up all of the pages on it yet, hopefully soon….

“I see that you have the NES Advantage as an option for download. How do I connect this up?”
First, you have Robert C to thank for sending me an NES Advantage controller. You take one set of the wires and connect them exactly as mentioned in the step by step instructions. Then connect the other yellow wire to pin 4 of J3. Connect the other pink wire to pin 5 of J3.

“Are you planning on making <insert NES component here>?”
If it's not in the downloads section, then I haven't made it. However, that doesn't necessarily mean I wouldn't make it. If you donate one of the controllers to me, I will try to write the firmware for it, time permitting. I can't promise, but I will certainly try my hardest.

"Where is the source code for the PIC16C745?"
Easy, there isn't any! I don't support the PIC16C745 for several reasons: it's an old device and its not flash programmable. This makes it a pain to do the development on. I don't forsee any problems modifying the code to work on this device, it may just take 15 minutes, but I don't feel like doing it! If someone else does it and sends it to me, I'll post it.

“My controller doesn't work and I followed everything you said exactly”
Uh huh.. sure you did! Double check EVERYTHING. Make sure that it is assembled exactly as I said. I have built lots of these, so I know it works and is correct. If you have double checked your assembly and everything looks fine, then start looking through the questions below.

“When I try to program the device, I get error XXX”
Check that the PIC is soldered on correctly and that the oscillator is soldered on correctly. These are the only two components needed during program (and actually the oscillator is only needed at the VERY end). Also, some programmers do not provide power, thus you may have to power the device to program it. Connect +5V to the red and black wires on the USB connection or the brown and white wires on the NES controller port.

“What do you use to program the PIC?”
I use MPLAB with a Microchip ICD. I built a special adapter that plugs into J3 on the boards.

“Oh cool! Can I buy this adapter?”
Nope! Make your own!!

“How do I program the PIC with ZZZ software?”
No idea. I probably haven't used it! I have used ICProg and MPLAB. Try reading the manual for the software or searching on google.

“When I connect the adapter that I made to the computer, nothing happens”
If nothing at all happens (ie: you don't get a “Unrecognized USB device” error), then you have done something severely wrong! This is usually what happens if the PIC isn't soldered on the right direction, isn't soldered on well, or the USB cable isn't soldered on properly. Double check all of these things.

“When I connect the adapter that I made to the computer, I get an “Unrecognized USB device” error”
Ok, this is usually the result of incorrect firmware, oscillator problems, or an incorrect capacitor. Make sure that you are programming the PIC with the correct firmware (ie: if you have the PIC18F2550 soldered on the board, don't program it with the PIC18F2445 firmware!!). Next, check that the oscillator is soldered on properly. I know that this part can be a little tricky, sometimes you may need to use solder wick to take it off the board and solder it back on. Make sure it connects all thee connections (just don't bridge them all together!). Lastly, the only capacitor that is super critical is the 220nF cap. If this cap is too small or too large or missing, the voltage reference won't stabilize properly and the adapter won't be able to enumerate.

If you have a scope, probe the oscillator (there are vias right there to probe) while the adapter is plugged in. You should see a 4 MHz waveform (it won't be exactly a sine wave though). Also check the voltage of the 220nF capacitor. It should be 3.3-3.4V.

“When I connect the adapter that I made to the computer, I get an ”USB Power Limit Exceeded” error”
OK, I actually had this happen once too. I re-soldered on all of the capacitors and the ceramic resonator to no avail. I re-soldered on the USB connector and that didn't seem to fix it either. Thus, my only conclusion is that something happened with the microcontroller. I am able to program it fine, but it draws excessive power from the USB bus when it's plugged in. The only thing that I can think is that the PIC was damaged during soldering.

“I just can't this to work. What is your address so I can send it to you?”
Absolutely not! I don't want to see your globs of solder and melted wires. If you can't get it working, look at the orders page.

“My question isn't listed. Can I email you?”
Yes, but if your question is listed or is similar, I probably won't respond. I may not even respond if your question isn't listed. Sorry, I just get too many emails to devote my entire day to responding to emails. I will try to keep updating the FAQ as I get more (or hopefully less after the FAQ) questions. My email is dhall (at) zero-soft (dot) com.