Building a Neo Geo Stick USB Adapter

4,008

22

36

About: Self taught DIYer, interested by anything electronic but without trying to launch a rocket to the moon :-)

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.

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:

  1. Plug stick into adapter
  2. Plug USB cable from adapter into computer
  3. Run the Windows' "Game Controllers" tool (from start menu, type JOY.CPL)
  4. Make sure you see your controller
  5. 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:

  1. Go get WinKawaks
  2. Unzip it to some folder
  3. Have a few roms around
  4. Start WinKawaks
  5. 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!

Share

    Recommendations

    • PCB Contest

      PCB Contest
    • First Time Author

      First Time Author
    • Make it Glow Contest 2018

      Make it Glow Contest 2018

    36 Discussions

    0
    None
    NicolasP140

    7 weeks ago

    Thanks
    RudyD1 for sharing your work ! I land on this article by searching how to make
    an original Neo Geo stick works onto an original xbox / 1st xbox. Do you think this
    usb converter can works with an xbox? Maybe you've tried it yet? Thanks.

    4 replies
    0
    None
    RudyD1NicolasP140

    Reply 7 weeks ago

    Hello Nicolas,
    Sorry I don't know. However the encoder appears as a regular joypad in Windows.
    Knowning that, if you are able to already connect a regular joypad to your xbox, it should work.
    I found out that adapters exist to plug USB devices to the Xbox controller port, if you have one, you should know pretty soon if it's ok!
    Regards

    0
    None
    NicolasP140RudyD1

    Reply 7 weeks ago

    I do have this usb to xbox adapter. I'll try to get back an old pc controller from parents home to test it !!
    In the other way, the original xbox controller is a standard 1.1 usb with proprietary connector. So I have pretty decent chance to make it work !!
    I'll try to keep you in touch cause it's difficult to find good solutions to plug an arcade stick on an xbox nowadays.

    0
    None
    RudyD1NicolasP140

    Reply 7 weeks ago

    Good luck! Chances are indeed pretty high :)

    0
    None
    NicolasP140RudyD1

    Reply 4 weeks ago

    Nope ! No, no, no... Didn't work ! So now I know that make another controller (neo geo controller included) work with the original xbox requires an adapter. One guy named Bruno Freitas made (and sells) his own called retropad adapter. It is an open source project but I don't understand his pcb plans :/
    Another solution would be to build one with an arduino that has an atmega 328p chip.
    Of course you can buy this kind of signal converter, but hey, we're on instructables ^^

    0
    None
    Misos91

    Tip 4 weeks ago

    Neo Geo Cd controllers need the 5 volts conected, old sticks don't use it.

    1 reply
    0
    None
    RudyD1Misos91

    Reply 4 weeks 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!

    0
    None
    AffanK3

    Question 2 months 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.

    12 answers
    0
    None
    RudyD1AffanK3

    Reply 2 months 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.

    0
    None
    IvensBRudyD1

    Reply 7 weeks 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?

    0
    None
    IvensBIvensB

    Reply 7 weeks ago

    Here is the pcb and the windows configuration

    igorcontrole1.jpgigorcontrole2.jpg
    0
    None
    RudyD1IvensB

    Reply 7 weeks 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!

    0
    None
    RudyD1RudyD1

    Reply 7 weeks 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:)

    0
    None
    IvensBRudyD1

    Reply 7 weeks 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.

    bcddd932-0a54-4f37-9170-9937f011c20f.jpeg
    0
    None
    RudyD1IvensB

    Reply 7 weeks 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

    0
    None
    IvensBRudyD1

    Reply 7 weeks 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.

    222.jpeg111.jpeg
    0
    None
    RudyD1IvensB

    Reply 7 weeks 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).

    0
    None
    IvensBRudyD1

    Reply 7 weeks 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

    0
    None
    RudyD1IvensB

    Reply 7 weeks 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

    0
    None
    RudyD1RudyD1

    Reply 7 weeks ago

    From what I found, there are known issues for gamepads caused by oxidation.
    There is a capacitor inside the gamepad, they often leak and corrode the PCB. That can be replaced for extra safety.

    That capacitor is tricking me, if it's bad, maybe that it'll short the buttons.
    If you look carefully at https://youtu.be/zAT4YzVoAqU?t=592 you'll notice that the capacitor (top right) has a leg on the large outer track (probably common ground) and a leg going to each button. Who knows, again, check continuity.

    I feel like you'll have to disassemble the joypad to find out what's wrong inside.
    Good luck!

    Please see these videos :

    Screenshots of PCB from the videos:

    Neo Geo Joypad PCB.jpgNeo Geo Joypad PCB-2.jpg