Jump to content


6 Button Gamepad for the TI-99/4a

gamepad 6 button joystick adaptor

10 replies to this topic

#1 Sinphaltimus ONLINE  



  • 1,781 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Sun Jun 4, 2017 2:17 PM

This is a 6 button 8 directional gamepad for the TI-99/4a natively. (No Adaptors needed)
It's meant to be a D.I.Y. project. Total cost to me was Aprox. $19.00 US for 2 gamepads and 20 diodes.
      Controller Source - https://www.amazon.c...0?ie=UTF8&psc=1
      Diode source - https://www.amazon.c...0?ie=UTF8&psc=1
      I don't know who created the original schematic, I find it all over the web. But the original in the upper left of my picture below is of a 2 port atari adaptor for the TI-99/4a created by someone else.
      Same goes for the pin out diagram for the TI side including the 2 db9 pictures.
Add to that other materials used (solder, wiring, glue) for pennies PLUS time and you have yourself 2 TI-99/4a Gamepads, one for each console.
If I were asked to build one for someone, I'd ask for $20 $40 per joypad completely modded as shown.

I had to up the price because it takes me a couple of hours to complete a mod on one Joypad including setup and breakdown times.

I highly encourage you all to do this MOD yourself but if you really want me to do it for you, I have to ask for more money due to time.
Looking at the attached picture will show you how I did this with the materials I had.
I'll give some notes here:
1. Plan ahead with your own drawings that you understand. Your wire colors may differ depending on the controller you go with. Test them all and make your own chart for pin#, colour, board location.You'll want a controller that has all 9 wires to be certain. Sega Genesis controllers are like that as far as I know.
2. Test every wire and connection from the cable end to the connection ends as you go along. Check all solder points and pad connectivity as you go. One at a time.
3. It's easiest to do the Joy1 and Joy 2 connections first since they do not have diodes associated with them.
4. Be sure to isolate all traces. I used a dremel to obliterate the logic chip in to dust and cut all the lines.
      I isolated each solder point the gamepad already had and made sure joy1 and joy2 check lines were isolated from each other. review the photo and follow the traces. It should all make perfect sense.
5. I used Hot Glue to hold things in place and I applied it as I went along ensuring I isolated all possible shorts (using hot glue as an insulator).
6. I also drilled holes next to all the already connected wires on the board to allow me an easy path for my connections. You can see the unused holes in the picture for lines 1->7 and 6->5.
7. I was fortunate that the gamepad board had exposed round pads of bare solder. I suppose those were for Q/A testing. I drilled holes next to the ones I needed for new connections.
      I had to scratch the enamel off the common trace for J1 Signal sitting in the middle of the 4 directionals due to lack of circle solder pad.
      You can see the circle pads I soldered to, there are a few unused. Look at the ones near the middle buttons that went unused in the picture below....
8. Be careful not to short any bare wires, be aware not to close holes that were there already (for encasement pins) and of course be aware of your drilled holes when applying hot glue if you choose to mimic my method.
9. I borrowed a program from another Topic thread to test. There was a typo in the original, find it and fix it.  - Source = http://atariage.com/...r-ti/?p=2058171
      Already fixed and slightly customized code. Note: I think it's inefficient for game controller code but works for testing.


                                         My Test Results.
         Attached File  Test results.png   6.92KB   3 downloads
10. Use it as intended. - You can certainly use this gamepad as a single player Joy1 for any existing games you  have. OR play two player games on one gamepad.(WHuh?Why? I know) However; the joy 2 buttons are just that, for Joy 2. So if you press them in conjunctions with Joy1 buttons in a game such as PARSEC (pressing up on both Joy1 and 2 at the same time) it will allegedly cause glitches or something undesirable (no damage just in game controller glitch). Don't blame the joypad. If you connect two TI joysticks and did the same thing, you'll probably get the same glitches. It doesn't make sense to use the controller in this way for existing games that aren't coded for this.
11. Further modifications were necessary. The bottom half of the controller housing has cylinders molded in to fit flush against the PCB. I needed to give 'em a little shave with the dremel to fit the wiring and hot glue.
12. Don't hold me responsible if you destroy the planet by attempting or using this modification. Or even if you break your console or something less destructive than destroying the entire planet.
      I knew the risks and now you do too,
      If you follow these instructions, any part of them, in real life you do so at your own peril. Just because it worked for me....doesn't mean it'll work for you in the sense that it could have been my fault. :P
Last but not least. You will need games specifically coded to work with the full functionality of this controller. The game pad directionals and the X button are the Joystick 1 directionals and fire button.
      Y/B/A/C/Z buttons are for Joystick2 as follows in same order Up/Down/Left/Right/Fire.
      I attempted to make my connections standard. So anyone who wants to make their own 6 button gamepad for the TI to code for, please take in to account the button assignments.
      Together we can establish a new standard in TI gaming and ensure our programs work across the board with any controllers folks my make on their own utilizing this Topic Thread,.




Attached File  6-Button-JoyPad-Keys.png   257.24KB   1 downloads

Of course, I rate this project as easy for an ametuer. But do ask and learn, I used a heat sink for every solder point to protect the diodes. I don't know it that's unnecessary, but I did it anyway.
Thanks to everyone here for encouragement and help.
Now it's time to start making games that can take advantage of this design and layout. Get creative. Street Fighter? Tanks game where you can move one way and rotate the turret another? Puzzle games where you have to control 2 characters to solve the puzzle ? (Castle of Dr. Creep anyone? - (C64 game) or The Goonies?) RPGs with spell, attack, defend, jump, dodge buttons? What would you like to play on your TI with a 6 button gamepad?
Make it, Code it, Play it. Share it. Do it.

Attached File  6-Button-JoyPad.png   3.89MB   6 downloads

Edited by Sinphaltimus, Sun Jul 23, 2017 4:59 PM.

#2 digdugnate OFFLINE  



  • 381 posts
  • Location:SW Missouri

Posted Sun Jun 4, 2017 2:27 PM

i think like a Robotron-style game would be pretty wicked!

#3 Sinphaltimus ONLINE  



  • Topic Starter
  • 1,781 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Sun Jun 4, 2017 2:39 PM

i think like a Robotron-style game would be pretty wicked!



When thinking about those kinds of games, (because I have) The 8 directional gamepad fo Joy1 is not easily replicated for Joy2 as the buttons are laid out. It would be really difficult to use the up diagonals without hitting one of the two fire buttons. A caveat to this kind of layout. Perhaps a V2 mod where there are TWO 8 directions pads on one controller, or 2 mini thumbsticks... etc... A modded XBox 360 controller perhaps?


EDIT: Something like this perhaps? As long as the contact points have traces to solder to, it shouldn't be that hard. Hrm..... But this is USB so it's probably all digital. I dunno...




Edited by Sinphaltimus, Sun Jun 4, 2017 2:50 PM.

#4 iKarith OFFLINE  



  • 271 posts
  • Location:Portland OR

Posted Sun Jun 4, 2017 9:10 PM

If only we had a good way to test for the presence of serial controller and clock a shift register.  Could easily implement a SNES sort of thing.  You'd need to power it of course, but that's required for doing anything interesting with that port.



    River Patroller

  • 2,651 posts
  • Location:Vancouver, Washington, USA

Posted Sun Jun 4, 2017 9:38 PM

You can use this RXB version of same program:

10 call clear ! RXB version of Gamepad test

20 call joyst(1,x,y,2,b2,b3)

40 call key(1,b1,s,2,b4,s)

100 call hput(1,3,"up/down:"&str$(y),2,3,"left/right:"&str$(x),3,3,"button1:"&str$(b1),4,3,"button2:"&str$(b2))

140 call hput(5,3,"button3:"&str$(b3),6,3,"button4:"&str$(b4))

200 goto 20

#6 Sinphaltimus ONLINE  



  • Topic Starter
  • 1,781 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Mon Jun 5, 2017 8:24 AM

I think I'm going to use RXB for my first 6 button game pad game. Pretty much sold on that idea.

#7 Sinphaltimus ONLINE  



  • Topic Starter
  • 1,781 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Sun Jul 16, 2017 11:53 AM

Edited original post to include this:


Attached File  6-Button-JoyPad-Keys.png   257.24KB   1 downloads

#8 chue OFFLINE  


    Chopper Commander

  • 100 posts

Posted Sun Jul 16, 2017 12:22 PM

Thanks for this, you inspired me to do the same mod.  I did however do my button assignment a little differently than yours.


I did mine as follows:


x, y, a, b - are player 2's left, up, down, right.

z - player 1 fire

c - player 2 fire


obviously the dpad still is for player 1.


Also I did a BASIC joystick test program in the following link.  It tests both joystick1 and 2, as well as the fire buttons:



Edited by chue, Sun Jul 16, 2017 12:30 PM.

#9 Sinphaltimus ONLINE  



  • Topic Starter
  • 1,781 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Sun Jul 16, 2017 3:39 PM

Nice. I was hopeful anyone doing this would keep the button assignments the same in case they wanted to develop and share their programs with others. But if it's just for you then sure, anyway to do it - 

This is the program I grabbed from another thread and fixed up a little.

10 call clear

20 call joyst(1,x,y)

30 call joyst(2,b2,b3)

40 call key(1,b1,s)

50 call key(2,b4,s)

100 display at(1,1):"up/down:"&str$(y)

110 display at(2,1):"left/right:"&str$(x)

120 display at(3,1):"button1:"&str$(b1)

130 display at(4,1):"button2:"&str$(b2)

140 display at(5,1):"button3:"&str$(b3)

150 display at(6,1):"button4:"&str$(b4)

200 goto 20

#10 PeteE OFFLINE  


    Space Invader

  • 47 posts
  • Location:Beaverton, OR

Posted Sun Jul 23, 2017 4:03 PM

I just finished modding a controller following your instructions.  Works great!  Thanks Sinphaltimus.

#11 Sinphaltimus ONLINE  



  • Topic Starter
  • 1,781 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Sun Jul 23, 2017 4:48 PM

Awesome! Thanks for letting me know. :)

Also tagged with one or more of these keywords: gamepad, 6 button, joystick, adaptor

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users