Need Help with Optical Rotary Controller Circuit

This is the place for any magazine-related discussions that don't fit in any of the column discussion boards below.
Post Reply
Posts: 1
Joined: Tue Jan 19, 2010 9:30 pm

Need Help with Optical Rotary Controller Circuit

Post by RARusk » Tue Feb 02, 2010 9:42 pm

Off and on for the past couple of years I have been working on a optical rotary controller for the game "Tempest 2000" for the Atari Jaguar. This game is a home console update of the popular arcade "Tempest". "Tempest 2000" came out in the mid-nineties and is considered the single best game for the short lived Atari Jaguar home console.

The original "Tempest" arcade game used a weighted optical paddle to control your shooter. However, for "Tempest 2000", you had to use the Jaguar joypad to control your shooter, a less than desired control method.

The beauty of the paddle control was that you had speed and smoothness of movement. But this was negated by the joypad.

However, at the last minute, a hidden code was implemented into the game that, when activated, would allow you to use a paddle with the game. But, you had to make the control yourself since Atari had no intention of releasing an additional controller for this title.

This option used a mechanical three-pole encoder. The more positions you had on the encoder the better the response.

While this was an inprovement this was still not to where most fans of this game would like it to be. While it was more responsive, the smoothness and overall speed wasn't quite there.

The Atari Jaguar joypad used a twelve button keypad in conjunction with three fire buttons, two control buttons, and a standard directional pad. In addition, the joypad used a row-column wiring configuration:


When you pressed a button a signal was sent down two wires. One represented a column and another represented a row.

Normally a three-pole mechanical encoder would have ground on the center pole and your right and left direction on the other two poles. But on the Jaguar you used the column for left/right (Padport 4) on the center pole and the rows for left (Padport 12) and right (Padport 11) on the other two poles.

Once I understood how the three-pole mechanical encoder is hooked up then I began to find a way to use an optical encoder for the game. I managed to get one to work but it had to be wired differently.

You had to wire the left/right signals from the optical encoder to the left/right rows on the joypad but you couldn't hook up anything from the encoder for the column. If you hooked up anything to the column then it wouldn't work.

While the optical encoder worked nicely on the game there are a couple of issues that I am trying to work out.

The first issue is that of the camera. You use the keypad to change the camera from really close-up to really far away.

But, with the optical encoder hooked up, the camera is always really close-up to your shooter. If you try to adjust it the camera will simply go back to up-close. The optical encoder is interfering with the keypad and preventing you from being able to change the camera to your liking.

The second issue is during a bonus stage. After acquiring three bonus items during the course of the game then you can enter a bonus stage that will allow you to warp forward several levels if you fly through enough rings.

However, with the optical encoder hooked up, you can only go up, down, and right. You cannot go left. You can use a joypad in Port 2 to do this stage but the optical encoder will still keep you from going left and preventing you from taking advantage of this stage.

After some thinking I decided to find a way to translate the signals from the optical encoder into something that would resemble signals from a mechanical three-pole encoder, something that the game prefers and works best with.

With a mechanical three-pole encoder you had metal brushes brushing up against other metal contacts as you spun the paddle around. When you stopped spinning the paddle then the brushes settled into indents between the contacts. This ensured that both the left and right channels would go OFF - OFF when the paddle is stopped.

However, on an optical encoder, when you stopped spinning the paddle, the two direction posts could be either of four states (OFF - OFF, OFF - ON, ON - OFF, ON - ON). So I need to find a way to shut off the two direction posts when I stop spinning the optical encoder. This would mimic the indents found on a mechanical encoder.

I asked Intersil for help and this is the response they gave me for this part of the problem:

"For the first issue, it looks like you need an ON-OFF-ON type switch, Left is on, center is off/open and right is on. I think you can do this with two CMOS SPDTs."

With this information I am looking for a schematic that does this. If there is a simpler schematic or a one-chip solution I would like to know about it.

But this is part one of this circuit. The second part, after the optical left/right signals go through the first part, is the use of the ISL43120 chip. The ISL43120 chip is a low voltage, single supply dual SPST switch (Normaly Open):


The signals coming from the optical encoder (and after the first part of the circuit) are attached to IN1 and IN2. The Left/Right Column (Padport 4) is attached to NO1 and NO2. If IN1 is Optical Encoder (Left) then COM1 is Left (Padport 12) and if IN2 is Optical Encoder (Right) then COM2 is Right (Padport 11).

This makes the ISL43120 a "mechanical three-pole encoder" and should give the proper signal for the game to work more properly (once the indent problem is worked out properly).

If anybody has any helpful suggestions or even point to a one-chip solution for this entire problem I would be very grateful.

Post Reply

Who is online

Users browsing this forum: No registered users and 38 guests