DIY Arcade Interface – Xbox Gamepad Encoder

I created a prototype controller interface for xbox based on a hacked smartjoy frag keyboard adaptor.

These smartjoys (also known as smartbox II) were designed to allow peeps to play FPS titles via a connected PS/2 keyboard and mouse. The smartjoy is a neat little device and you can get hold of these very cheap.

I made a previous xbox prototype based on an AVR development board and a hacked smartjoy (I called it Minty Fresh Interface). If you want the background you can find this on my project site at Unfortunately, I had some issues with this so had to go back to the drawing board. 🙁

This time I had more success and the device is now tested and working with xbox. 🙂

So I had to come up with a way to get the inputs from arcade controls to connect to the PS/2 keyboard input ports on the smartjoy. I figured I could create my own PS/2 keyboard encoder circuit (a bit like a keyboard hack) to connect the arcade controls to the smartjoy.

I found a PS/2 integrated circuit at Farnell Electronics, it is Holtek model HT82K628A. It is a 40 Pin Dip IC. This is an old chip which was used in Windows 95/98/2000 keyboards. It is also very cheap. It accepts input from pins (via matrix) and communicates PS/2 to host.
I built a breadboard circuit around this IC and tested with with a PC and it worked. The circuit includes the chip, a couple of capacitors (0.1uf and 10uf) and a resistor (58.3k or 59k) to control the clock speed. If you get the spec for the chip it includes a schematic for this circuit.

I connected the smartjoy to this test circuit and bridge a couple of pins. Woohoo! everything was looking good, so I set about hacking the smartjoy adaptor.

There was a bit of room inside the smartjoy so I managed to get my additional components inside the original case.
In the video, you will see that I mounted the chip its back (like a dead bug) so that I could solder wires to the legs. To make space I removed the nasty memory card slot. The chip is quite large but I was surprised by how well this fit.
The hole at the top of the smart joy (were the memory card slot was) is a convenient exit hole for the wires to the arcade controls.
I screwed some terminal blocks on the outside of the smartjoy.

This is very functional, I tested using the gamepad test tool on xbox.

Mappings working for:

* Dpad (up/down/left/right)
* Analog Stick (up/down/left/right)
* Left and Right Triggers
* Left and Right Thumb Buttons
* A,B,X,Y
* Black, White
* Back, Start
* PS/2 or USB Trackball/Mouse

That’s 20 inputs! Plus the trackball/mouse. Not bad eh!

Some other neat features:
* Analog sticks can be inverted
* Deadzone/Mouse sensitivity can be adjusted
* Left and Right sticks can be swapped (invert look/move)
* I found that the buttons on mouse/trackball can sometimes be assigned to xbox button. This feature depends on device.

If you want to use the device without a connected mouse/trackball then you will need to bridge 2 pins on the green ps/2 port. Bridge clock and data using a 10ohm (or other low value) resistor.
For reference, You can see a picture at the bottom of my project page at

I am happy with this so it will be going inside my CoinOps arcade cab.

25 Comments on “DIY Arcade Interface – Xbox Gamepad Encoder”

  1. Hello I went to your website
    look for an adapter that conects my fightstick to the original xbox I have the killer instinct stick as well as the marvel vs Capcom you have anything that can work?
    if you do please send me a link or tell me what's it call ..
    hope to hear from you soon thank you very much…

  2. smartjoy as well as the helpful guide provided at the website linked in the video description. i am part way through creating the encoder for my second controller, will post more once complete.

  3. I found the issue with the difference in pins, one of my SmartJoys (the one i used first) was a pre owned unit. The smartjoy allows the user to change the keyboard mappings so it would seem the last owner had remapped some keys, this can be reset by connecting an actual keyboard and pressing Esc+Ctrl+Alt+Del. After reverting back to the default settings i was able to correctly map all the buttons for controller 1 using the datasheet provided by Holtek and the quick reference card provided by…

  4. Great, i came up with a chart which gives the optimum connections. I had a few issues with wiring myself.
    Check out the recommended mapping arrangement on my site at:

  5. Thanks I have managed to solder all the connections and most of the controls seem to work although there are some that I cannot get working, It is strange for example the "Y" button uses pins "1 + 5" and D-Pad left uses pins "37 + 23" and both work fine, but D-Pad UP uses pins "23 + 1" and does not work, I have found this with other options where some connections work but others using two of the same pins don't, but i have managed to find alternate pins for some connections that seem to work.

  6. Hi this is great, i am working on this now. I have all the parts needed, i will let you know how it goes (may take some time as i am quite busy at the moment). Thanks for the help.

  7. HI, which pins on the chip do i solder the 4 ps/2 cables to? I have looked on the layout you provide in the video but can only see where Data and Clock are attached.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.