Jump to content
IGNORED

Double-controller adapter (2600)


supercat

Recommended Posts

I've been thinking about the desirability of having more than one controller per port, especially when using an AtariVox, and think I may have a solution.

 

One would start out with a DB9/DB9 "Y" cable (assuming one can find such a thing). One joystick would plug in normally. The other joystick would go through an adapter that had some logic on it to map joystick signals to paddle signals thusly:

 

-1- During the main display kernel, turn on the 'dumping' capacitor to the paddles. The adapter would see the long low pulse and recognize it as start of frame.

 

-2- Release the dumping signal and wait at least a scan line (any amount of other code could be executed here). Paddle input 0 would give the fire button.

 

-3- Pulse the dumping signal low briefly and wait at least a scan line. Paddle inputs 0 and 1 would be the state of joystick left/right.

 

-4- Pulse the dumping signal low briefly once more and wait at least a scan line. Paddle inputs would be the state of joystick up/down.

 

This adapter could be used on either joyport, and it could be used with either a joystick or an AtariVox.

 

How does that sound as a concept?

Link to comment
Share on other sites

Sounds interesting.

 

As I read it, the dumping signal will do double duty to reset the caps and cycle the adaptor through 3 different multiplexer channels: 1=fire button, 2=Left/Right, 3=Up/Down. The purpose of that scheme as opposed to multiplexing multiple joysticks would be to allow the standard joystick lines to remain connected at all times to support the AtariVox.

 

It's too early to do the math and I haven't programmed a paddle game so don't have a gut level feel for this, but since you proposed it, one scan line must be sufficient time to charge the caps to a state that can be recognized by logic circuitry as a 1.

 

The long low start of frame signal would happen during the vertical blanking period, I assume.

Link to comment
Share on other sites

As I read it, the dumping signal will do double duty to reset the caps and cycle the adaptor through 3 different multiplexer channels: 1=fire button, 2=Left/Right, 3=Up/Down. The purpose of that scheme as opposed to multiplexing multiple joysticks would be to allow the standard joystick lines to remain connected at all times to support the AtariVox.

 

There are two ways I can see do a splitter for use with the AtariVox. An easier method would just use four resistors and two transistors to handle the up/down/left/right, while letting the fire button just connect directly. That seems a bit specialized, though; a splitter that would allow the use of two joysticks in each port (or Avox+joystick) would seem more useful. Better still would be if one could flip a switch to change the "primary" controller between the joystick and AtariVox, but that would be more complicated.

 

It's too early to do the math and I haven't programmed a paddle game so don't have a gut level feel for this, but since you proposed it, one scan line must be sufficient time to charge the caps to a state that can be recognized by logic circuitry as a 1.

 

Hopefully it would be. Experimentation might show that it requires more than half a scan line on some hardware, in which case I'd suggest using two.

 

The long low start of frame signal would happen during the vertical blanking period, I assume.

 

I was expecting a really long low start of frame while the kernel is running, though the circuit would probably trip with a delay of 16 scan lines.

Link to comment
Share on other sites

I was expecting a really long low start of frame while the kernel is running, though the circuit would probably trip with a delay of 16 scan lines.

One full read of the secondary controller per frame then.

 

I can see being able to implement the electronics for the secondary controller with a cheap microcontroller: 2 I/O lines to interface with the paddle lines, a timer to watch for the start of frame condition on the two paddle lines and 4 I/O lines to monitor the joystick directional signals. A PIC 12F629, 12F675 or similar are in the sub $2.00 neighborhood at retail in single unit quantities. Using the internal 4Mhz clock and programmable pull-up resistors for reading the joystick, I think the only other components you'd need would be 2 current limiting resistors for the connection to the paddle lines.

 

As a standalone adapter, I imagine it'd suffer from the same chicken-or-egg adoption issues as just about any custom/enhanced controller scheme. If the focus is to be able to use one port for both an AtariVox and a joystick simultaneously, maybe the concept would be successful as an enhancement to the AtariVox. Send a "read the joystick" command to the Enhanced AtariVox and it would take care of reading the joystick state and then put the joystick data on the input lines for x amount of time (or until mode switched) to be read by the game software just like any other joystick. If the AtariVox requires some initialization from the software, the lack of that initialization might allow an enhanced AtariVox to sit in pass-through mode for compatibility with non-AtariVox games.

 

On the other hand, the market for the AtariVox is probably limited largely to the current owners so you'd have a hard time selling new enhanced units. Maybe an adapter would sit between the AtariVox and the port. It would recognize its own initialization command, be detectable to Enhanced AVox compatible software and handle the "read joystick" command to switch the port between the joystick and AtariVox. It would have to allow normal AVox compatible software to detect an AVox (if one is actually attached). It would sit in non-AVox joystick-pass-through mode if not detected and initialized by software.

 

(I'm merely discussing/speculating/rambling. I don't know the implementation details of the AtariVox so I could be way off base here.)

Edited by BigO
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.

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...
  • Recently Browsing   0 members

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