Jump to content
Sign in to follow this  
almightytodd

Four-Player Joystick games?

Recommended Posts

One of the strengths in the original VCS that seems to have been forgotten, until the recent appearance of the Nintendo Wii, is that you could have up to four players playing simultaneously on some games. The one limitation to this, was that this type of play was restricted to paddle-controller based games. The reason had to do with the method of communicating controller information to the I/O chip: two joysticks equal four buttons each, plus one fire button each for a total of 10 signals. Each paddle control communicated on fire button, and a voltage between zero and five. Multiply times four controllers and you get a total of 8 signals.

 

It occurs to me, that a paddle controller is a potentiometer, like this:

gallery_12574_177_7104.png

 

In a schematic, this is represented as a "tap" moving along a resistor:

 

gallery_12574_177_5569.png

 

So I took a look at this page to learn more about voltage-divider circuits, and it got me to thinking - if you could define each of the eight joystick controller positions as a division of five volts (...or falling into eight ranges of voltages), wouldn't it be possible to create four-player games that used joystick controllers?

 

I envision taking the basic concept of a voltage-divider shown here:

 

gallery_12574_177_962.png

 

...and expanding it to apply to the eight positions of an Atari VCS joystick:

 

med_gallery_12574_177_6349.png

 

I'm imagining two joystick-to-paddle adapters that would each be connected as shown here:

 

gallery_12574_177_5015.png

 

Does this look at all feasible to any of you? Would there be additional challenges in the programming that would prevent the creation of four-player games such as "Tank Battle" (with Combat-style graphics) or a four-player version of "Surround"? If it simply couldn't be done on a 2600, could a 7800 handle it? (So far as I know, there were no paddle-controller games for the 7800)

Share this post


Link to post
Share on other sites

The Atari 2600's resistance sensing circuitry is cheap and not really suited to this purpose. It imposes substantial computational overhead, and can generally only read one paddle per frame (the overhead from trying to read two or more paddles per frame would usually be prohibitive). When using a circuit like yours, moving the joystick while its corresponding paddle input was being read would produce a reading that had no logical relationship to the joystick action. Since it would only be possible to read each joystick 15 times per second (one joystick per frame), having each motion of the joystick produce a glitched reading would render the circuit useless for many types of games.

 

There are a number of alternative approaches, depending upon what sort of compatibility is required with "normal" control operation. The best approach would probably be to use something like a 74LS157 (4-channel 2:1 multiplexer) to switch between two joysticks, with the control input connected to a paddle input with a 10K pullup. One fire button (on the joystick which is used when the control input is 'high') would connect to the usual spot. The other fire button would have a 10K pullup and connect to the other paddle input.

 

On most games, the first joystick would work normally and the second joystick would have no effect. A game could read both joysticks in a port, however, by doing:

 lda SWCHA   ; Primary joystick inputs
 sta whatever
 bit INPT4   (left port) or INPT5 (right port) ; Primary fire button
 bmi not_f0_hit
 bit INPT1	(left port) or INPT3 (right port) ; Secondary fire button
 bmi not_f2_hit
 lda #$82
 sta VBLANK
; then some time later
 lda SWCHA  ; Secondary joystick inputs
 sta whatever
 lda #$02
 sta VBLANK

Other approaches would allow an essentially-unlimited number of joysticks, but this one is nice because the primary joystick would work "normally". Since the joysticks would require pull-up resistors, the total would probably be ten resistors and one 74LS157.

Share this post


Link to post
Share on other sites

Supercat - your knowledge of both hardware and software is extraordinary. You truly are a "super cat". If I'm understanding correctly, each of the two controller ports would read one joystick in the "normal" manner, and then a second joystick would be added into each port using a multiplexer circuit. So from a programming perspective, controller port one would read joysticks one and three, and port two would read joysticks two and four. Is that right? Would you use Pin 7 (paddle +5V) to indicate which joystick is being read?

 

This does lead to the chicken-and-egg dilemma, however: With no four-player hardware currently available, there is no reason to develop programming to support it, but with no four-player software there is no reason to create the hardware. Both would have to be developed simultaneously, probably using Stelladapters since there are no emulators that would have keyboard mappings for four joysticks.

 

Maybe this is an issue that there isn't very much interest in. I just have fond memories of four-player coin-op games in the early arcade years, including a four-player tank, four-player surround, and of course there were multiple four-player driving games. Super Football would be really fun with two teams of a quarterback and receiver and a rusher and defensive end. Identifying who is who graphically would be a challenge, but if it could be done, it would really be something. Activision's tennis playing doubles would really be something too. I'm probably just dreaming and going way beyond what the hardware can do - particularly with the 2600. It seems to me that the 7800 should be able to do it though. It's a shame Atari didn't have that in mind when they designed the 7800. It would have been a feature that would make it a real competitor to the NES. I noticed that most of the NES two-player games were really one-player games taking turns anyway.

 

I've always liked multiplayer games that involved "coopetition", as is found in the coin-op Gauntlet. That was one of the things I found really fun when Doom came out. I was working at a company developing software and during our lunch break or after hours, we would play network Doom and run around the levels working together to kill off the bad guys, find the secrets, and advance through the levels. That was such a blast.

Share this post


Link to post
Share on other sites

I've thought a lot about 4 player games, usually more clever ways of using the paddles (I think you could do a fun "hovertank" version of combat with 4 paddles) half the time the real problem is more the display limitations of the 2600, not just the pain of reading the damn things...

Share this post


Link to post
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.

Guest
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.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...