Jump to content

ProPlay - New 4 button gamepad for TI


Recommended Posts

A limiting factor in game play on the TI and the Atari as well was the single button on the joystick. After the introduction of the NES most everyone converted to using game pads which seem to be easier to use then joysticks. Now with the desire to produce retro titles for the TI I see people looking to port NES titles. So it seems like it's time to come up with a new controller.


Thus the ProPlay controller idea was born. I had 2 choices in mind to go with, 1 the Sega master system controller which was a 2 button controller and a Sega Genesis 4 button controller.


There was also the Sega Genesis 7 button controller, but that would require a chip in the controller and +5 volts to the controller for the chip which means either a battery or a console mod. So easy elimination there.


At first I was thinking the Sega Master System controller would be great, I figured I could get them used for next to nothing. Well They are harder to come by then I thought and more expensive used then I thought.


While searching for used controller I came across new replacement 3rd party controller for the Sega Genesis. Cheap and New perfect fit.




The Sega controller has a 9pin plug, same as the TI and has all 9 wires in the cord, where as the TI controllers only send 6 wires to each controller. The basic idea was to create a single controller that uses both joystick 1 and joystick 2 inputs. So how many inputs can we get from this with out any special bit switching. The TI controller has 5 buttons in it, UP,DOWN,LEFT,RIGHT,FIRE BUTTON. Since I want to use the standard statements in basic to make programming as easy as possible, you can't use UP and DOWN at the SAME time, same with LEFT and RIGHT. So that leave 3 possible switches, Vertical, Horizontal, and the Fire Button.



Programming for the new pad is quite simple,


rem this reads all buttons
10 call clear
20 call joyst(1,x,y)
30 call joyst(2,a,b)
40 call key(1,k1,s)
50 call key(2,k2,s)


x,y,k1 in the code above is the basic joystick input, -4,0,4 for x,y and 18 for k1 which will be referred to as button 1

a is button 2, b is button 3 and k2 is button 4, the start button. return values are 4,0 for a,b and 18,-1 for k2


The game pads works as player 1 game controller in all existing TI games that use a joystick, and a linked set will be available that will let a 2nd controller be used as player 2 controller, although it will be limited to the standard TI 1 button format. The 1st controller will be able to be used as a 4 button controller in single player games and a 1 button controller in 2 player games.


The controller has a 6ft cable and will be compatible with any Atari 9pin extension cables.







I plan on having these available at the fair for $20, I made my prototype by hacking and slashing the PCBoard in the controller, quite the challenge. I have Designed a new PCBoard for future controller. I will be ordering my 1st 6 boards as prototype boards to make sure my design works in the housing of the gamepad. If all goes well with these six, I will then order a regular run of the PCBoards. If I have no problems with the prototypes then $20 a controller will be set, If I have to redesign I will have to re-evaluate my price point, but I want to do everything possible to ensure a Cheap, Affordable and New controller for the TI community.


Comments welcomed!



Link to comment
Share on other sites

Awesome. Excellent work. :thumbsup:


It looks like TI Basic already support it, so I guess emulators will do fine too. I'd like to support it in future games. Could we have a list of your demo program ?





Yeah that's the nice thing about it. No special driver code for it, no bit pulses to count or anything thing complex and CPU slowing. It uses the same code that is already existing in TI. Emulators will have no problem programming for it and you can simulate it in c99 by setting joysticks to keyboard use, If there is a way to map joysticks buttons in c99 then you could map any PC game pad to work for it. But I have not dug into that yet.


The demo code is this, (just typing it from memory may be a typo or 2)


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 10


So you can see, there is nothing special at all in programming for it.


I hope you do support it in future games, as well as anyone programming future retro games. Once I get my prototypes in and together, I was thinking about a competition on here for games that make the best use out of the new buttons and the prizes will be the prototype controllers.



Link to comment
Share on other sites

The extra buttons aren't a selling point for me, but a better joystick for the TI 99/4A definitely is. Thanks for offering an alternative to that horrible handwrecker Texas Instruments originally sold for the system.


With the release of them, I will be including a disk that has a game that supports the buttons, I'm building Tertis for this rotate piece left,right, drop piece and pause. And some sample code on programming it and testing it.

Link to comment
Share on other sites

hmmm thinking about it, I could see A="fire" and B="magic lamp" in Tutankham :cool:


That would be great, and you might as well throw in the Start Button for starting the game and pausing the game. :)


Owen, your RPG ought to make good use out of the extra buttons :)

Link to comment
Share on other sites

Thanks John. My game was predicated on 100% keyboard inputs, no joystick. But with this new controller, I might just set it up to run off it!! Only thing is--- if the user doesn't have this controller, it wouldn't be possible to play it on hardware. I suppose I could call for both inputs. :). Good stuff---

Link to comment
Share on other sites

Just wondering, could there be a way for TI assembly language software to detect if this controller is attached ?



Hmmm, It's just 2 joysticks in one housing. I don't think there is a way to check to see if a joy stick is hooked up.

All the inputs are on or off digital and off is the default. There are 2 unused wires and I suspect they are for checking for the extended joystick that is mentioned in the GPL guide where a joystick can return -7,-4,-1,0,1,4,7 but I don't know for sure. I was experimenting with call joyst(3,x,y) and you do get some return values but not that match the returns in the GPL giude. If someone has info on the extra 2 wire in the 9pin connector, then I should be able to set a bit that can be checked.


This is all just talk cause I'm not sure that these work, or work the same in basic and assembly. In the basic manual it says in call joyst that joystick values 3 and 4 are reserved leading me to believe that 3 and 4 are referenced by the extra 2 wires. If these are available then another problem will be if the emulators will recognize the extended joystick, where my existing design is made to function as a normal joystick on existing games and the enhanced joystick on games programed to accept it.


For games I am designing for it I am setting up user input as fallows,

the 1st person joystick and the 1st person joystick button are the defacto controls, so for say a xevious type game that has guns and bombs, the guns are primary and will be mapped to joystick 1 button.

Joystick 2 doesn't matter if it's there or not, but the call to real joystick 2 is there. so bombs will be mapped to button 2 which is joystick 2 up function. So if you have regular TI joysticks plugged in pressing up on the 2nd controller will drop a bomb, not very convenient. So there will also be a keyboard key from that triggers the same function.


So this allows a person to play a game with traditional 1 button joystick and keyboard, or with the new 4 button joystick and no keyboard.


The start button is the button on the 2nd controller anyway and is read buy split keyboard side 2 key return 18 which is Y, So if you have a game using the new controller and have the start button say "PAUSE" then pressing y on the keyboard is going to pause the game same as pressing the button on the 2nd controller if you have standard TI joysticks.


So fallowing this, you can easily design a game that the user can play with either standard joysticks and keyboard for extra functions or the new 4 button gamepad.



Link to comment
Share on other sites

Great work. I'm looking forward to owning a paired set.


I've ordered my prototype boards, and in 2 weeks or so I will know if my design works. If so expect these to be available in 4-6 weeks.


I never used the regular TI brand controllers until about a week ago when I bought some carts on ebay that had a pair thrown in. I have always used atari 2600 joysticks and the Y adapter that used to be available. I heard people complain about the TI joysticks and now I understand why. The game pad is very nice function wise and responsive. I've tried it on several games and they are alot easier to play with the gamepad then even the atari joystick.

Link to comment
Share on other sites

If there is a way to map joysticks buttons in c99 then you could map any PC game pad to work for it. But I have not dug into that yet.


No, there isn't, but you've given me a reason to update that.



Tursi that would be great if you could have that in a future update. Or maybe definable joysticks, like now I think you have use joystick or keyboard for joysticks 1,2. Maybe a 3rd option use 1 button joystick, 4 button gamepad, or keyboard. That way anybody can select the control scheme with out trying to map out buttons. Either way would thrill me :)

Link to comment
Share on other sites

John, are you taking pre-orders yet, or are you waiting to test boards first?


If your'e taking pre-orders, I'll take one. =)



I'll make sure anyone on here that wants one will get one at the $20 price for a single in about a month. Not sure about the pricing for the pair, as it really costs the same to create the player 2 pad as the player 1 pad, it has 2 less diodes in it but has to include a lock out switch for the player one pad to make sure player one doesn't cheat and send player 2 signals from pad 1. Maybe once I get my final prices for everything I can get the cost down a bit more, I'ld like to get the 2 controller version to about $30.


Anyway, current status is,

I'm waiting on the prototype boards to be made, the prototype boards are a special run of 6, with no mounting holes drilled in them to get a special prototype pricing, 6 was the best price point amount for a given quantity. should have the boards in 10-14 days.

I'm waiting on a price quote for a bulk buy of controllers to get a lower price per unit there. Should have the units, in a week.


The only problem I really see with my boards is that they might not be cut shapewise just right or the contact pads wont match up, I oversized the pad area to compensate for that, the circuitry is pretty simple so that should be fine.

pad 1 and pad 2 use the same board just pad 2 has nothing mounted in it except the lock out switch.


So as I said 4-6 weeks and I should be able to start shipping them, I'll post on here for it. I don't for see a problem in supply after the 1st batch as everything parts wise is just a reorder at that point. And each new batch will be about a 2 week lag.

Link to comment
Share on other sites

Tursi that would be great if you could have that in a future update. Or maybe definable joysticks, like now I think you have use joystick or keyboard for joysticks 1,2. Maybe a 3rd option use 1 button joystick, 4 button gamepad, or keyboard. That way anybody can select the control scheme with out trying to map out buttons. Either way would thrill me :)


Yeah, it still uses the very, very old joystick API, that only supported two joysticks and I think 4 buttons. I need to update it to use DirectInput (or whatever the current version of that API is), then there will be a lot more flexibility. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...