Watch on YouTube: https://www.youtube.com/watch?v=hiYIV9RUbPk
Cheap DIY Neo Geo To Sega Megadrive / Genesis Joystick Adapter! OJTRTA Part 3
One Joystick To Rule Them All! Continuing where we left off in episode 2, learn how to make a simple adapter to use your Neo Geo AES arcade controller with your Sega Megadrive / Genesis!
All Episode Playlist: https://www.youtube.com/playlist?list=PLLJ-Nv_tKpJnpKGb3LmNxHop7dFVMd7ZM
This is a series so subscribe for more adapters as I figure them out, and if you have an idea for a system you’d like to see the Neo Geo stick hooked up to, let me know down in the comments!
Hey everyone, and welcome to the third video in my One Joystick To Rule Them All Series. In the previous two episodes I showed you how to build some very simple and cheap adapters to use Neo Geo controllers with Atari compatible systems, Amstrad, MSX, and the Sega Master System, so be sure to check those out if that’s of interest. In this episode I’ll be covering the Sega Megadrive, or Genesis of course if you’re in the US.
This one’s a little bit more complicated than my previous adapter, so in addition to the breakout connectors and joystick extension cable I’ll also be using a handful of inexpensive components and a 74HC157 multiplexer chip.
So just a quick recap. As I explained in my first video, the Neo Geo AES is a games console released by Japanese games company SNK in 1990 and is famous not only for the quality of its arcade ports, it’s essentially a consolized arcade machine after all, but also the build quality of the hardware itself. Personally I’m a huge fan of the original Neo Geo stick, and it’s certainly a big step up from most of the bundled controllers that we got with most 80s and 90s consoles and computers.
Over the years SNK released a couple of revised versions, known as the kidney bean stick and the Neo Geo CD joypad. This adapter provides the 5V that these need to work, so it should work great with those too.
So anyway, why do we need the chip? After all, the previous adapters didn’t need one. Well, back in the 1970s when Atari designed their joysticks, 4 directions and one button were more than enough for anyone, and these signals could easily be carried using the 9 wires of the Atari 9-pin connector, with some room for future expansion too.
Fast forward 30 years and the games console is a much more complicated beast. In the case of the Megadrive, the first time the Start button comes into play, as well as 3 game buttons. This makes for a total of 8 inputs. If we add a ground and 5V feed, we end up with 10 pins. But the Megadrive controller only has 9 pins, so we need a way to send 10 signals down a 9 conductor cable.
This is achieved in the original controllers using something called a multiplexer. A multiplexer chip is a very common 7400 series TTL IC that combines multiple inputs into a smaller number of outputs. It achieves this by using something called the “data select input”, which is on pin 1 of the chip. The 157 will send a different input to each output depending on whether the console sends 5V to this pin, known as a “high” state in TTL or pulls it to ground, which is known as a “low” state.
If we take pins 12, 13 and 14 for example, we have the start button connected to pin 14, the C button connected to pin 13, and the output on pin 12. When the console pulls pin 1 high, the multiplexer will send the status of the C button to pin 12. When the console pulls pin 1 low, it’ll send the status of the start button to pin 12.
The select pin is governed by the system clock, so on an NTSC 60Hz console this happens 60 times per second, and on a 50Hz PAL console, 50 times per second. By hooking up an oscilloscope to pin 7 of the controller port we can see this happening in real time.
I’m not sure which console was the first to introduce this concept of polling for input, but I know that Nintendo’s NES works in a similar way. That’s another console I’m planning on covering in a future episode, alongside the SNES. It may seem complicated if you’re not familiar with electronics but it’s actually a very simple and elegant solution. It’s also expandable by chaining multiplexers together, meaning that the 9 pin ports can support controllers with even more buttons, or even multiple controllers on the same port.
As the 74HC157 that we’re using is a TTL device, we also need pullup resistors on the inputs to make sure it’s being fed the voltage levels that it’s expecting. These resistors will all be 10K, or 10,000 ohms. Also, as is usually with the case with electronic circuits, we’ll be needing a decoupling capacitor to make sure our electrical signals are nice and clean and stable. I’m using a 10nF tantalum capacitor as I had some spare, but the exact value and type isn’t too important.
Cramming all of this into a breakout connector would result in a huge mess, so in this case, and in the case of many of the consoles I’ll be featuring going forward, we’re going to have to put together a small interface board based around this multiplexer chip.
As is usually the case on these more complex projects, I built my prototype on a breadboard just to make sure that the theory was sound. I ran into some issues with bad connections, which is always a risk with a cheap poor quality breadboard like mine, but I got there in the end.
I was really pleased with how well the prototype worked for Gunstar Heroes, which is one of my favourite games of all time, let alone on this system.
So now it’s time to make this a bit more permanent, and a lot tidier in the proces. I’m going to transfer my circuit to perfboard. You can use this or stripboard, it really doesn’t matter. I’m using perfboard because I happened to have some spare. It’s available in various sizes and can be trimmed down to suit the project you’re working on, which I’ll do later. It has copper solder pads on the back which can be joined together with solder, as we’ll see shortly.
Bear in mind that this isn’t an electronics tutorial channel - I’m just building this stuff for my own amusement and showing you all how I did it. But if you do have any feedback I’m keen to learn and it’ll be gratefully received. I may even cover it in an update video as before.
We’ll start with the chip in the centre and work our way outwards. I’m going to build this circuit around common power and ground rails, just like the breadboard prototype.
With perfboard, every pad is separate so the connections between components are made using solder and the legs of the components themselves. It’s kind of a halfway house between freeform soldering, where the component legs are soldered to each other, and a proper PCB. Because of this, I bend the legs in the direction of the component they’re going to be connecting to, and not necessarily cut them short straight away.
When snipping component legs off, it’s also handy to hold on to them to create links with later.
Now’s a good point to inspect our work so far and make sure everything is connected up as it should, and maybe more importantly, that nothing is connected to anything it shouldn’t be.
The up and down directions aren’t handled by the multiplexer, but they do need pullup resistors, so I’ll add those now. I’ll also add a link to what will become our power rail to power the chip itself using one of the legs we saved earlier.
Now to create the 5V power rails on both sides by using the leg of the last resistor in line to tie the others together. I’m not sure if this is the best way to do it, but this is the way I learned and it’s always worked for me.
Now we need to start hooking our ground connections up, so I’ll create some more links for those using the offcuts.
It’s time to start adding some wires, so I’ll make the first few hookups for the power and ground rails as well as adding the decoupling capacitor.
With the board all wired up, all that’s left is to hook up the inputs to the Neo Geo 15 pin connector, and the outputs to the Megadrive 9 pin connector. For that I’ll use a couple of lengths of that SCART cable I chopped up in the previous episode. This time I’ll just be tinning the ends that are going to be soldered.
I had to add an extra wire to the joystick side, and I thought for ages about the best way to do it. In the end I decided to run an extra wire alongside the existing cable and use heat shrink tubing to keep it all tidy. I’m not really sure of a better solution without finding some 10 core cable. Only a very short length will be visible on the final product anyway.
It would probably be a good idea to incorporate some strain relief into these cables too, maybe glue them down with some hot glue. I don’t own a working hot glue gun at the moment so I’ll drill and cable tie them directly to the perfboard. I’ll also take the opportunity to cut this perfboard down to size.
I found a small plastic box that’s just the right size so I’ll use that to house the project, drilling some holes in the ends for the cables. Then it’s just a case of mounting the circuit inside using PCB risers and wiring up the breakout connectors. I had considered spraying it black to match everything else, but to be honest I like being able to see my handiwork. I’m not sure why transparent electronics stopped being a thing when the 90s ended.
So there you go. A slightly more complex project than before but a fun little electronics project and an inexpensive way to get a bit more use out of those Neo Geo controllers. It’s a really great plug and play solution for all sorts of games and works fantastically well, even if I do say so myself.
I’m getting lots of great feedback from people who’ve built their own adapters from this series, including an Instagram post of a really nice modded stick from a user going by the name of retro_glue_2.0. I also had some funny reactions to a picture I posted of my stick hooked up to my Atari 2600, so if you’re interested in that kind of thing I’ll put my other social media links in the description below.
I’m planning on building an adapter for the PC joystick port next as well as trying out an off-the-shelf USB adapter, and further down the line I’ll be looking at the Atari Jaguar and Falcon, the 5200, and of course the Nintendo consoles.
As always, please do let me know if you build one of these, it really makes my day to see them out in the wild and I might even share your work in a future video. Also if there’s a console or computer you’d like me to feature please do let me know!
Finally, as always, thanks for watching, and I hope to catch you all again soon.
If you liked this video please consider subscribing to ctrl.alt.rees on YouTube!