DIY NES Controller - Full Build
Vložit
- čas přidán 16. 06. 2024
- In this video I make a NES compatible controller from scratch, it ended up us a very long video but I couldn't find a place to split it that felt right. I've added a timeline at various points so you can skip bits you are not so interested in.
Making a small project from beginning to end like this was very rewarding, feels good to have a finished product.
Breadboard Build 0:00
PCB Design 6:40
Soldering 15:08
Case 3D Printing 23:18
Assemble And Test 39:22 - Věda a technologie
Awesome! It's cool to see the whole process from beginning to end in one video, and the addition of the timeline is a nice touch.
Thanks Steven! I made the timeline because I was worried it was too long to let people skip to the bits they wanted to see. Particularly the 3d design / print was quite big (I'm no 3d artist so it take a while), i'll have a think about doing it again on longer videos.
It’s really useful seeing the full design process, even if speed up. Great video!
Glad you like it! Anything particular you would like to see at normal speed? This one needed a lot of fast forward, it was many yours of footage (not including the actualy 3d printing) before I started editing.
Bravo! You actually developed and prototyped a full product from the ground up!
Thanks Geo Nik! I did enjoy this one.
It looks really neat!
Thanks Enrique!
For the strain relief, a cable tie around the cable works quite well.
I've used that on some other things now.
Thank you very much, i replicated your project for an esp32 project and it worked like a charm!
Nice one Mike! I'm glad is was useful!
Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?
Very nice James. For a computer built from scratch, a controller was also built from scratch.
The cut-off timeline is very useful for these long videos.
Thank you.
It does feel right! Needing a controller still feels a long way off though, there will be new cpu build videos soon. Waiting on some parts at the moment.
On the analytics page for videos there is a timeline graph that shows the parts of the video that got the most view, I’ll be interested to compare that to the timeline on this one once it’s collected enough data.
I realise this video is 2 years old but you can use a soldering iron to push the screw inserts in, the heat in the brass will melt the PLA and hold in place
Yeah, a few people have commented that. I've seen it done many times since I made this.
Great video I've always wanted to do something like this.
You should invest in some solder flux!
Also - you can push down the threaded inserts using a Soldering iron.
Thanks! I was using a flux pen, but it tended to go past in a flash as I was using a lot of fast forward to try and keep the length down. One thing I would add though is temperature, I was running the iron at 320 for most of this. I could tell the solder wasn’t flowing as well as it should onto the button legs (Far higher thermal mass than the other components) but I realised the problem towards the end, turned it up to 350 and the joins got better.
I built a arcade stick controller for my NES. Should have built one years ago. Completly changes gameplay.
Nice work! I've been thinking of doing something similar for the SNES controller, I've updated my interface circuit to have the extra buttons of the SNES.
Very good design for both pcb and cover it might best from the original can i have the design plz
The schematic, pcb and stl files for 3d printing can be found here: easyeda.com/weirdboyjim/Nes-Controller
I really thought you were going to go for the nes dogbone controller look for awhile there.
To be honest, I was heading in that direction. But it turns out that Me planning in my head for 5 minutes isn't as good as the industries most experienced controller designers carefully designing something for years. You would have expected that?
Those bevels all around the places are so damn hot. Shame those screw holes were not symmetrically placed :D Anyway great work.
The button configuration on a NES controller makes symmetric screw positioning, if I do a SNES version in the future it will be easier to balance it out.
subbed
Welcome!
What uF of Capacitor did you use for the Shift Registor?
For the decoupling caps I always use 100nf unless the data sheet says differently.
Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?
James, is it possible to make a NES keyboard from scratch that could use Family Basic?
In theory you could. I haven’t got any experience with the Nintendo keyboard myself. Don’t rely on this but some quick web searches lead me to believe it’s for the Famicom and plugs into the Ext port. To make a keyboard using the techniques I show here is possible but might be a bit much, would definitely be better to use real keyboard switches. If you just want a Nintendo keyboard replacement it might be a better idea to use a microcontroller to build an adapter from a ps2 keyboard to their protocol.
@@weirdboyjim I just googled PS2 keyboard to NES and some one at Atari age has already done it!!! Thank you for the suggestion 😊
Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?
(3:36) If you want to exactly match the behavior of official Nintendo controllers, it actually *does* matter whether you pull the "serial in" line high or low. To properly match the exact behavior of an official Nintendo controller, the "serial in" line should be pulled high, not low like you have it here.
(9:06) And the same point applies here.
(16:15) They changed the colors from the official colors, and they didn't even change them into something sensible! (The official colors are white for Vcc, brown for ground, red for clock, orange for latch, and yellow for data.)
So, the controller you designed looks quite similar to a "dogbone"-style NES controller, which came with the newer top-loader NES. (There were two styles of official NESes: the old-style one, which loaded cartridges in from the front, and the new-style one, which had the cartridge slot on top instead.
I did some thinking, and I realized that there's a potential race condition if the internal controller clock updates the output latches at the same time the CPU tries to read them. The fix for this is simple: just wire the data assert line to the reset line of the 555 that handles clocking the controller. Since the reset line on the 555 and the data assert line are both active low, that will mean that the output latches for the controller will be updated by the controller read circuitry if and only if it's not being told to assert to the bus.
I don't see how it can matter. The NES only ever reads 8-bits in so it wouldn't matter there.
@@weirdboyjim Controller reads on the NES are done in software, not hardware, so a controller read routine might potentiall read more than eight bits. However, it turns out I was wrong about how that pin is connected, anyway. I was looking at an article about reading from the CPU side of things. I just looked at an article on the controller side of things (as well as a picture of the PCB in an official controller), and it turns out that pin *is* connected to ground normally. Oops.
To answer your question about how it could matter though, inside the NES, the controller port pins have pullup resistors on them. By tying the serial in pin within the controller to ground, it allows you to tell a controller port where the plugged in controller has no buttons pushed apart from a controller port that has no controller plugged in.
Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?
Probably, but that depends on what you mean by "turbo feature". If you mean changing a constant hold to rapid button presses then that would definitely be possible. If I were to do that I'd replace the circuit in an OEM controller replacing (or supplementing) the shift registers with a micro-controller. There would be lots of ways to hide the functionality, that's a whole other subject.
@@weirdboyjim A D-pad direction like Down Direction can be set to turbo at same time as a button, to create a repeated auto-fire input like Down+B correct? The reason I ask is, I am recently very suspicious of a certain speed runner who is the only person in the world (he has current WR in a game) who can mash Down direction on dpad + press B button at a lighting speed (14hz-16hz) 100% perfectly (no mistakes EVER). Its suspicous because he never ever messes up, never. By messing up I mean he always presses Down Direction + B button in perfect unison. If they are not pressed simultaneusly, the attack cancel he is doing does not work in the game (NES) He streams and plays the game 5 days a week, and his hand, wrist, forearm, shoulders never get tired ever. The mashing has to be so fast to get quick kills on the bosses, the only way to do it is by tensing your arm and shaking your forearm, which becomes very tiring very quickly. He has a body cam and hand cam on him while playing, but you can see he is obviously not even moving his entire arm that controls the mash input. Even the hand cam clearly show him just simply pressing Down+ B button and holding it their, without vibrating any part of his hand or arm to get a human produced realistict optimal mash speed. However for each press that he does (which he holds for a brief time) he gets 4-5 individual Down+B inputs in game. Which is IMPOSSIBLE unless he has a Turbo auto-fire set up and activated.
@@weirdboyjim Is there a company/ online forum/ or just a general source of information on these "micro controller PCB circuit boards"? The funny thing is he already admitted that he does not have a fast mash speed. (which makes what he is doing in the game impossible actually) He also mentioned that he builds his own custom NES controllers and regularly switches out the PCB circuit boards which to me seems like a red flag. As long as the turbo function can run within the controller itself, on original console hardware without the need of any external PC programs like Joy2key, Rewasd..etc then it is very possible he is indeed cheating. Collecting money, donations and fame for WR speed runs which is fraud really.
@@rebranded1248 Interesting. What game. NES Controllers are sampled in software, usually as part of the main update loop. I'm guessing that's a full frame game (so 29.97hz), assuming it needs to see alternate up/down's then perfect response would involve pressing at 14.985hz. I would say though that since we are dealing with a harmonic of most cameras video update rate you would expect that kind of action to look odd on camera even if it’s legitimate. I.e. it’s not impossible but you are not unjustified in wondering.
@@rebranded1248 I'm not aware of any specific sources of information on this stuff but I imagine a wide range of electronics hobbyists could help out. If you are doing a serious investigation on this stuff I could maybe help out.
Cool can you do a full build of the NES controller that looks like the Famicom controller pretty please with sugar lumps on top 💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
That would be a very small change from this circuit.
@@weirdboyjim Please do it for God sake I believe in you 💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖 cause I've give your video a thumbs up 👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍
first
also keep making those vids
Thanks! And congratulations, not sure there is a vast amount of competition for first post on my videos though ;-)
Ee
Everyone loves an insightful comment!
Incidentally I have done the same project some time ago, but on a perf board with close dimensions to the original controller. I was fascinated by the simple yet effective engineering/design of the original, like the strain relief.
Btw. I wonder if the extension cable you got was a good fit for original hardware connectors? I had to wrap some electrical tape around mine else it would slip out (random Aliexpress purchase).
Nice project! Not sure about the connector in that regard, The "real" NES controller connects into the other end fine but I've not plugged this into a classic NES.