Neo Geo Mini Gamepad

A basic gamepad for NeoGeo and Superguns using DB15 Joystick ports


The Neo Geo was a very popular and powerful video game system in the 90s developed by SNK. It was sold as home console (also called AES nowadays) as well as used in arcade systems (also called MVS nowadays). Both, the home console and all the arcade boards which actually had game ports (the later one slot board didn't), used a 15 pin D-Sub connector as joystick connector. The according joysticks (also called joyboards) were only sold for the home consoles are now rare and usually also not in best shape. Still, it's not uncommon to pay 100€ for an original joystick in so-so condition. While it's relatively easy to create your own DB15 arcade stick, there is quite a bit of mechanical work involved, they are usually somewhat clunky and with a proper joystick and switches, also not very cheap.

Therefore I came up with the idea to design a minimum DB15 gamepad that is cheap and easy to build. It may not be the best possible solution but it's good enough to check if a console or arcade board is still working and also should work well for most games.


The design is completely based on tactile switches. To avoid any mechanical effort or need for specific parts, the four directions are also implemented as simple switches.
The first four buttons reflect the four button layout used in the official Neo Geo CD gamepads. The Select/Start buttons are smaller and placed in the middle.
To also allow using the gamepad on MAKs/Superguns (hardware to make Jamma based arcade boards usable without a full arcade setup), I added two more buttons E and F.

The two additional buttons E and F are located on pins 10 and 2, which are actually outputs on the home console. Also pin 9 is an output on home console.
Apparently, these pins are also used on the home console to detect specific controllers, e.g. a Mahjong Controller and also to switch e.g. the input matrix on these controllers.
Obviously, the original Joyboards switch down Button D (Pin 4) when the output on Pin 9 is switched to ground. To mimic this behavior in the simplest possible way, there is a jumper J2 to shorten these pins. It's probably not needed, because a normal joystick is supposed to be the default if the detection fails.
Note that even though the three output pins 2, 9 and 10 on the home console are open collector outputs (without pull devices) and switching them to ground should do no harm, I added the three 330Ohm resistors R1, R2 and R3 for these outputs to add a little bit of additional protection. If you still  don't like the idea of buttons pulling these three lines low, just don't place the resistors.


I also designed a case which can be 3D printed.

The FreeCAD design files and STL files can be found in the repository.

Hints and Links

The schematic and PCB were designed with DipTrace. There is a free version available with up to 300 pins or even 500 pins if you register (this design uses way less than that).

In the schematics, I used OMRON B3F-4055 (12x12mm) and B3F-1055 (6x6mm) tactile switches with yellow plungers. These are the versions with the highest force needed to press down the switch: In hindsight I should have used the medium versions B3F-4050 and B3F-1050 with ivory plungers.

The case is designed for round buttons that are available for this kind of tactile switches with projected plungers. The version for the 12mm switches is easily available from e.g. eBay or Amazon, for the 6mm versions, I found only one seller on eBay.

When soldering a pin header into Jumper J2, it might be too high for the case and the pins could move up the case. Either use a pin header (and jumper) with reduced height or close the jumper with a wire if you intend to use it - or leave it unplaced otherweise.

Use a female 15 pin D-Sub connector on the PCB. Note: the connectors on actual Neo Geo joysticks are longer than normal female Sub-D connectors. So, while a female connector of a Neo Geo jiystick will fit into a normal male D-Sub connector on e.g. a Supergun, a normal female 15 pin D-Sub connector will not fit into the male connector on actual AES hardware because it is too short. The workaround for this is to use a Neo Geo joystick extension cable, which are sold very cheap on e.g. AliExpress. I just needed to shorten the male plug by a few millimeters to get a good fit:


All files related to this project can be found in the BitBucket repository

License Information

This is a spare time project I did without any commercial interest.
Everything is released under the Creative Commons CC-BY license.

Creative Commons License

In a nutshell this means that you can do share, modify and use everything released under this license even for commercial projects.
You just need to give me appropriate credit, indicate what changes you made and agree not to try to force a more restrictive license on my work.
See the CC BY license for details.