Introduction: Building a Neo Geo Stick USB Adapter
The Neo Geo AES from SNK was a glorious home arcade machine released in 1990. However it was and still is quite expensive. Games are massive cartridges of multiple megabits. Back in early 90's you can easily imagine how advanced this was.
For retro gamers, this is an expensive leisure. As I'm a proud owner of an AES system with 2 joysticks, I went down the shady road of emulators. But I wasn't able to just plug the controllers.
This instructable explains how to very easily build an adapter.
Else, you can get one here at 28$. Looks like there are generic adapters for 15 pin game controllers around 13€, don't know about these.
Note that in 2018 a Neo Geo Mini has been released. That can be an option to cheaply discover that 1st-Class gaming system!
If you'd like to support me in writing other instructables, please buy hardware from the Amazon sponsored links.
Also, this instructable is now also available from my personal page : http://stuffblog.dullier.eu/
Step 1: USB Converter Part
The AES game controller consists of :
- A joystick : 4 contacts for Up, Down, Left and Right
- 4 action buttons : A, B, C, D
- 2 function buttons : Select, Start
Pretty basic :-)
All buttons share a common ground so that's actually only 4 contacts for the stick and 6 for the buttons to manage a whole analog controller. This is a perfect option for "Zero Delay USB encoder" boards. You can get two for as low as around 18 USD. They measure each ~86mm x 35mm. Perfect to fit into a pretty small box.
This kind of kit comes with cables readily plugable in home made arcade cabinets. However we'll have to cut that a bit to solder on a DB 15 male connector.
Step 2: Soldering the DSUB-15
If you don't have a soldering iron, that 40-Watt Weller soldering station is a pretty good deal.
For a regular stick, solder wires so that:
- Pin 1 = GND
- Pin 2 = Credit (Select)
- Pin 4 = Button 4
- Pin 5 = Button 2
- Pin 6 = Right
- Pin 7 = Down
- Pin 8 : VCC [+5V; Get power from USB port; required for Neo Geo CD controller]
- Pin 11 = Start
- Pin 12 = Button 3
- Pin 13 = Button 1
- Pin 14 = Left
- Pin 15 = Up
Note you can also solder:
- Pin 3: Button 5 (Out 1)
- Pin 9 : Button 7 (Out 3)
Pin 10 : Button 6 (Out 2)
For full reference, see this page at Neo Geo Dev.
Step 3: Connecting the D-Sub to the Encoder Board
The back of the PCB show that the outer green track indeed connect the outer pins together. Since we have a common ground in stick and encoder, one single ground wire is required. Keep the one you prefer :-)
We need only that one to be connected to the D-SUB GND pin.
Make sure to use a diagonal cutting pliers to have cable cut short.
Don't forget to test before cutting the wires.
NOTE : On the PCB, the "common ground" is actually +5V coming straight from the USB port. This is the opposite of the Neo geo controller having a single GND and multiple "power lines" to have bits switching to "1" (there is power coming in). This is normally not an issue since this is the expected behavior of the encoder. The stick just connects the pins together at encoder after all.
Step 4: Putting All Together
Get a project box to fit everything in. Mine was close to this 100x50x21mm one.
I used a regular Dremel rotary tool to cutout for the DB 15 connector and USB cable.
I also drilled 2 holes to put screw/nut on each side to hold that tight. For that, of course again the Dremel, but with a specific very small Dremel drill bit. It might be a good idea to use a keyless chuck to prevent any misuse.
Once plugged into a Windows machine, it'll work out of the box. You'll however have to map the buttons in your emulator of choice. This adapter will work for any emulator/game as long as it uses a joystick.
Note that cables might be short some times, consider buying a long (3m or more) USB extension cable. I own 2 cables of 5m but found that 5m cable with integrated USB hub to be a super nice idea (don't forget 5V DC power adapter), also for other game pads!
If cables are an issue, well, get a wireless game controller like the Logitech F710.
Step 5: Emulator Setup : WinKawaks
Getting ready BEFORE starting emulator / software / game:
- Plug stick into adapter
- Plug USB cable from adapter into computer
- Run the Windows' "Game Controllers" tool (from start menu, type JOY.CPL)
- Make sure you see your controller
- Go to properties of that controller and test all buttons. Fix cabling as needed.
Once the stick is properly working from Windows, run your soft and set the controller.
In WinKawaks:
- Go get WinKawaks
- Unzip it to some folder
- Have a few roms around
- Start WinKawaks
- Setup input devices
This site explains different key setups.
Step 6: About Neo Geo Joypads
Discussing with people in comments, it appears the Neo Geo CD Controller has something special.
Update 2018-10-23.
When plugged into adapter, all buttons (ABCD, Select/Sart but not stick) "are pressed".
It's currently unknown why. I've attached images from below videos to illustrate the PCB.
Step 7: Final Words
In the first place this type of encoder is aimed at building custom arcade cabinets. Feel free to buy some buttons/sticks kits and build your own setup!
If you prefer that way, buy a fully furnished arcade kit including sticks, buttons, wires and encoders!
44 Comments
2 months ago
Hello friend, thanks for sharing this project, I wanted to know if you found out how to do the same for the neo geo CD control!?
Reply 2 months ago
Hi,
I'm sorry but I don't own a Neo Geo CD nor controllers, I'm afraid I won't be able to help much :(
Reply 2 months ago
Anyway thank you very much... I tried everything I could but I don't have any knowledge of electronics, I got stuck on the buttons, they all work but I'm frustrated !!! let's wait if there is someone who can solve this problem, there is no other article on the whole net about DB15 for USB along these lines
Tip 4 years ago
Neo Geo Cd controllers need the 5 volts conected, old sticks don't use it.
Reply 2 months ago
did you manage to make your adapter with the control of the neo geo cd!?
Reply 4 years ago
Thanks for tip, I was pretty there was something similar related.
I made a few tests with my encoder, easiest is to get the +5V from the USB line directly.
I updated the instructable to make it mandatory for Neo Geo CD controllers. Thanks again!
1 year ago
Hello, could the opposite be done? I have USB fighting sticks that uses the same Zero Delay board, and I'd like to use them on a NeoGeo, would it be possible?
Thanks.
Reply 1 year ago
Hi,
The neo geo stick is using simple contacts for all buttons and directions.
I think you can directly connect extra wires on the headers of the encoder.
However you should not connect USB and neo geo at the same time.
Another option is to have a swappable cable to your stick,one with current USB encoder and one with direct connections to the stick and buttons.
Yet another ugly option, use a USB to neo geo adapter.
Regards
Question 4 years ago
So I wired everything exactly how you've shown in the pictures, and when I plug the controller in, the d pad works, but the buttons are always turned on, and pressing the buttons on the controller won't turn them off. they're always on. Any suggestions? Thanks.
Reply 4 years ago
I feel like you've swapped the common ground and power pins of the buttons. Try using the other cable for each button.
If you unplug them from the encoder, do they turn off?
You can also try to "press buttons" by using a screwdriver and shorting the pins for each button directly on the encoder board.
Reply 4 years ago
Same here. If I unplug the GND from the encoder, they turn off.
Testing with a screwdriver, all works fine.
The only detail here is: I using the Neo Geo gamepad, not the arcade controller. But theoretically, it is the same controller, no?
Reply 4 years ago
Here is the pcb and the windows configuration
Reply 4 years ago
Hi, wiring should be fine.
Can you please take a close-up of the back of the pcb? I'd like to check how they wired the common ground.
Thanks!
Reply 4 years ago
Extra note, you shouldn't need to wire two GND from pcb to connector. That ain't having any effect I think. Let's see back of pcb:)
Reply 4 years ago
Yes, at my first tests, I haven't soldered two GND, but with that problems I started to try desesperated scenarios, even though I knew it would have no effect, hehe.
Anyway, follow the picture.
Thanks in advance for the patience.
Reply 4 years ago
Looks like it's actually done right :-O
Your encoder indeed has common GND on outer pins too.
From what I found about the joypad, it should be compatible with joystick.
My only last options are to ask:
1/ Is it the same if you plug one button at a time to the encoder?
2/ Do you have a multimeter? If yes, with GND to multimeter, are each buttons' pin beeping or some? Showing that a button si actually pressed for some reason?
3/ Was the pad hacked? Maybe check internal PCB?
4/ If you have access to another controller, is it same result?
5/ Are the 4 directions of stick working ok?
6/ I'm not sure from the pic, but can you confirm pinout? Like not inverting pins GND/VCC on DB-25 side? They look fine, but who knows :-O
Regards
Reply 4 years ago
1/ Is it the same if you plug one button at a time to the encoder?
R - Yes. For example, if I plug the button 2, only that will be always on and so on. And just to note, they turn on only if I have a GND plugged (what I guess be a normal comportament).
2/ Do you have a multimeter? If yes, with GND to multimeter, are each buttons' pin beeping or some? Showing that a button si actually pressed for some reason?
R - Here, we have a mistery. If I use a multimeter on the pins (of the 15 pins socket) with the controller plugged, I DON'T get a beep, even if I press the corresponding button on the pad. But, the dpad works well. So, in the project, I have the buttons always on, but with a multimeter, without the pcb, I have the buttons always off, even if pressed (except the dpad, that like I said, works fine with the pcb or not).
3/ Was the pad hacked? Maybe check internal PCB?
R - The pad was never opened, so I can say that was not hacked.
4/ If you have access to another controller, is it same result?
R - Unfortunately I don't have another controller =(
5/ Are the 4 directions of stick working ok?
R - Perfectly! In fact, if I plug a cable of stick, for example, the left on the button 3 of the pcb, on the Windows, the button will stay off until I push the stick to the left. Working great.
6/ I'm not sure from the pic, but can you confirm pinout? Like not inverting pins GND/VCC on DB-25 side?
R - I checked twice, but, who knows. I'll send some pictures.
Reply 4 years ago
OK thanks : I just don't know :-O
I've tested yesterday my encoder for the 4 plugs on the right, the MODE / TURBO / CLEAR / AUTO.
Can you try these? I've added some notes in my instructable's images.
My board seems to work such that :
- Mode : Switches (from Windows joy.cpl) between dpad and point of view (So I can't use a single encoder to support 2 sticks)
- Turbo & Auto : Turbo makes fast presses for a button, Auto does it without pressing button. Turbo/Auto is enabled when pressing both the Turbo/Auto key and a button
- Clear : Same as Turbo/Auto but to disable the turbo/auto (press clear + button)
The onboard D1/D2 LEDs are showing state of Mode / Turbo / Auto.
For my board:
- D2 (red) is for power on, regular mode (no POV, no Turbo, no Auto)
- D1 (green) is when POV is active
Both will flash if a button is using Turbo / Auto and is pressed (automatically for Auto, manually for Turbo).
Maybe the blackmagic's there, but I feel like your pad is working another way.
A tip might be to wire the +5V pin (and try that pin using multimeter instead of GND).
Reply 4 years ago
About MODE / TURBO / CLEAR / AUTO, I tested when I received the PCB, just to see. Everything works fine, the turbo does its job, it modifies the LEDs. Always working like a charm. =/
Trying to use the + 5V pin looks good, but before that I'll try something else.
I'm at work, so when I go home, I'll test a theory.
Imagine that the controller works with the GND and positive on the sticks, the normal behavior and so, work well.
Now imagine that the buttons work differently, like, the positive is always on and the GND is from another source, not the same as the GND of the sticks, and the GND is the one who sends the command when I press the button. I do not know if I explained it clearly, but it is the only explanation. So if the positive is always on and I share the GND of the sticks, that are always on too, this explains the always on buttons.
If I find out that this is a true then I have a "problem" because I will need to cut the GND share on the PCB. So I need to find the "GND" pings and "positive" pins of the buttons to use then.
Maybe it's a mistake, but I'll investigate better when I get home.
I'll give you feedback after that. =)
PS.: sorry for the bad english, that's not my native language =P
Reply 4 years ago
Making sense indeed.
Instead of cutting tracks, you can try swapping wires. The connecter should be ok to unmount.
About the +5V, with controller plugged and USB unplugged, try a continuity test between DSUB +5V and one of the button's wire.
Well, try anything about continuity to find out where that "ON" states come from.
PS: I'm not native English speaker neither, no problem :-D